select * from 表 where 字段 is null
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。保留所有权利。
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。保留所有权利。
到时候就不会出现烦人的NULL了
set @str=''
set @S=''
declare a cursor for
select a.name from syscolumns a,sysobjects b where a.id=b.id and b.name='t'
open a
fetch next from a into @s
while @@fetch_status<>0
begin
set @s=@s+' is null'
set @str=@str+'or'+@s
fetch next from a into @s
endexec('select * from yourtable where '+@str)
或使用null(columnname,'')替换