若要确定表达式是否为 NULL,请使用 IS NULL 或 IS NOT NULL,而不要用比较运算符(例如 = 或 !=)。如果有一个参数为 NULL 或两个参数都为 NULL,那么比较运算符返回 UNKNOWN。 SET ANSI_NULLS 指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为。
select count(*) from kkkk where a1 is null就可以看到了空值的记录!
空值的比较是用 is null select * from 你的表 where 字段 is null --显示所有空值的记录select * from 你的表 where 字段 is not null --显示所有非空值的记录
select count(*) from kkkk where a1 is null or select count(*) from kkkk where IsNull(a1,0) = 0 null值或0值 (a1为数字型) or select count(*) from kkkk where IsNull(a1,'') = '' 空值或null值(a1为字符型)
select count(*) from kkkk where a1 is null 或: select count(*) from kkkk where isnull(a1,'')=''
select * from kkkk where charindex(' ',a1)>0
Transact-SQL 参考
IS [NOT] NULL
确定一个给定的表达式是否为 NULL。语法
expression IS [ NOT ] NULL参数
expression是任何有效的 Microsoft® SQL Server™ 表达式。 NOT指定布尔结果取反。谓词反转其返回值,值不为 NULL 时返回 TRUE,值为 NULL 时返回 FALSE。结果类型
布尔型返回代码值
如果 expression 的值是 NULL,则 IS NULL 返回 TRUE;否则,返回 FALSE。如果 expression 的值是 NULL,则 IS NOT NULL 返回 FALSE;否则,返回 TRUE。注释
若要确定表达式是否为 NULL,请使用 IS NULL 或 IS NOT NULL,而不要用比较运算符(例如 = 或 !=)。如果有一个参数为 NULL 或两个参数都为 NULL,那么比较运算符返回 UNKNOWN。 示例
在下面的示例中,对于所有预付款少于 $5,000 或者预付款未知(或为 NULL)的书,返回它们的书号及预付款。请注意,显示的结果是在示例 C 执行后所返回的那些结果。USE pubs
SELECT title_id, advance
FROM titles
WHERE advance < $5000 OR advance IS NULL
ORDER BY title_id下面是结果集:title_id advance
-------- --------------------------
MC2222 0.0000
MC3026 NULL
PC9999 NULL
PS2091 2275.0000
PS3333 2000.0000
PS7777 4000.0000
TC4203 4000.0000 (7 row(s) affected)
请参见CASECREATE PROCEDURECREATE TABLE数据类型表达式INSERTLIKE空值运算符(逻辑运算符)SELECTsp_help UPDATEWHERE©1988-2000 Microsoft Corporation。保留所有权利。
指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为。
select * from 你的表 where 字段 is null --显示所有空值的记录select * from 你的表 where 字段 is not null --显示所有非空值的记录
or
select count(*) from kkkk where IsNull(a1,0) = 0 null值或0值 (a1为数字型)
or
select count(*) from kkkk where IsNull(a1,'') = '' 空值或null值(a1为字符型)
或:
select count(*) from kkkk where isnull(a1,'')=''