在SQL Server中使用ISNULL执行空值判断查询

日期:2020-04-29编辑作者:数据库

但是,在SQLServer的查询语句中,isnull需要两个参数,它的含义是如果参数1为NULL,则以参数2为isnull函数的返回值;

'1 XOR 1 XOR 1'中有多个操作数,运算符相同,因此运算符从左到右依次计算,'1 XOR 1'的结果为0,再与1进行异或运算,因此结果为1。

有如下查询:复制代码 代码如下:select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202'本来,ISNULL函数只有一个参数,它表示的含义就是判断这个参数的值是否为NULL,是NULL则返回TRUE,否则返回FALSE;

'.'匹配任何一个单字符

记得以前不懂这个的时候,遇到这样一个情况:一张订单表,其中一个字段是status,订单提交上来时status为NULL。 在程序里要做如下判断,当它为NULL时,显示一个审核的超链接;当它不为空时,显示一个字符串:已审。当时的程序是这样写的:复制代码 代码如下:if rs("status")"" then response.write "span style='color:red;'已审/span"else response.write "a href=check.aspid") & "审核/a"end if

输入退格符:b

其实这样的判断是不慎密的,rs("status")""并不代表就rs("status")就等于已经审核;也并不表示rs("status")""以外的情况就是未审状态;

逻辑与运算符:AND或者&&

最合理的应该就是用isnull(status,'') as status把status查出来,如果rs("status")=""则表示未审,这是一定成立的!

使用异或运算符XOR进行逻辑判断,SQL语句如下

即,上面查询的的含义是,查询vhhostlist表中s_comment='test202'那一行lastchanged字段的值,如果它为NULL,则返回一个空字符串;

例如插入一个单引号,加了反斜杠,插入成功

当参数为字符串时,返回字母中顺序最靠后的字符;

当比较值列表中有NULL时,不能判断大小,返回值为NULL

'.sky'表示匹配任何以sky结尾,字符长度为4的字符串,因此满足匹配条件,返回1;

使用LEAST运算符进行大小判断,SQL语句如下:

输入回车符:r

复制代码 代码如下:SELECT 1 XOR 1, 0 XOR 0,1 XOR 0,1 XOR NULL,1 XOR 1 XOR 1

复制代码 代码如下:SELECT 'ssky' REGEXP '^s','ssky' REGEXP 'y$' ,'ssky' REGEXP '.sky','ssky' REGEXP '[ab]';

按位左移()

'[ab]'表示匹配任何包含字母a或者b的字符串,指定字符串中没有字母a也没有字母b,因此不满足匹配条件,返回0;

由结果可以看到,当参数中是整数或者浮点数时,LEAST将返回其中最小的值;

上面两个运算符就不说了,只是比SQLSERVER多了&&和||的写法

按位异或(^)

输入单引号需要:'

当比较值列表中有NULL时,不能判断大小,返回值为NULL

TIPS:正则表达式是一个可以进行复杂查询的强大工具,相对于LIKE字符串匹配,他可以使用更多的通配符类型

在两个操作数均为NULL时,其返回值为1而不为NULL;

用来匹配字符串,语法格式为:expr REGEXP 匹配条件,如果expr满足匹配条件,返回1;

由结果可以看到‘1 XOR 1'和‘0 XOR 0'中运算符两边的操作数都为非零值,或者都是零值,因此返回0;

按位与(&)

而“.*”匹配任何数量的任何字符。

异或运算符:XOR

输入制表符:tab

SELECT * FROM table_1

而当一个操作数为NULL时,其返回值为0而不为NULL。

TIPS: a XOR b的计算等同于(a AND (NOT b))或者(NOT a AND ( b))

假如任意一个自变量为NULL,则LEAST()的返回值为NULL

MYSQL中提供的位运算有

如果不满足,则返回0;

'y$'表示匹配任何以字母y结尾的字符串,因此满足匹配条件,返回1;

若expr或匹配条件任意一个为NULL,则结果为NULL

由结果可以看到,当参数中是整数或者浮点数时,GREATEST将返回其中最大的值;

'^'匹配以该字符后面的字符开头的字符串

www.129028.com金沙,复制代码 代码如下:SELECT LEAST(2,0),LEAST('a','b','c'),LEAST(10,NULL)

GREATEST运算符

'*' 匹配零个或多个在他前面的字符。例如,“x*”匹配任何数量的'*'字符,“[0-9]*”匹配任何数量的数字,

TIPS:可以使用BIN()=binary函数查看一个十进制数的二进制表示

常用的几种通配符:

下面分别是 SELECT NULL =1 SELECT 1=0 SELECT NULL =NULL 的执行结果

字符的范围可以使用一个'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字

本文由www.129028.com金沙发布于数据库,转载请注明出处:在SQL Server中使用ISNULL执行空值判断查询

关键词:

SQL Server 2000的安全配置

SQLserver2000数据库应用非常广泛,一旦出现安全问题,造成的损失往往难以估量!应提前预防,防患于未然。这里,我...

详细>>

如何查看某个查询用了多少TempDB空间www.129028.com金沙

DECLARE @read BIGINT, @write BIGINT; SELECT @read = SUM(num_of_bytes_read), @write = SUM(num_of_bytes_written) FROM tempdb.sys.database_files AS DBFJOI...

详细>>

浅析SQL语句中GROUP BY的用法

GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按 ITEM.ITEMNUM这个字段分组,那其他字...

详细>>

微软总是试图使它的软件安装尽可能地简单顺www.129028.com金沙

如果你没有特意记录安装日期,那么有没有办法从SQL Server里查询到呢?想想我们在安装的时候,肯定会有Windows认证登...

详细>>