SQL Server中空值以“null”表示。
要测试一个“对象”为空值时得到结果为真的话,用以下语句:"对象 IS NULL"。
要测试一个“对象”不为空值时得到结果为真的话,用以下语句:"对象 IS NOT NULL"。
例:
DECLARE @A INT --随便定义一个变量
SET @A=NULL --让这个变量为空值
IF @A IS NULL --如果为空
BEGIN
SELECT 'AA' AS LS
END ELSE BEGIN
SELECT 'BB' AS LS
END
--运行结果 AA
IF @A IS NOT NULL --如果不为空
SELECT 'AA' AS LS
ELSE
SELECT 'BB' AS LS
--运行结果 BB
SET @A=1 --让这个变量为1
IF @A IS NULL --如果为空
BEGIN
SELECT 'AA' AS LS
END ELSE BEGIN
SELECT 'BB' AS LS
END
--运行结果 BB
IF @A IS NOT NULL --如果不为空
SELECT 'AA' AS LS
ELSE
SELECT 'BB' AS LS
--运行结果 AA
相关知识点延伸:
1、“null”的意思是“空值”。“not null”是not(否)运算,加null(空值),意思即“不是空值”。
2、实际运用中,一般还要加一个“IS”:
如“is null”如果是空值返回“真”。
如“is not null”如果不是空值返回“真”。
3、在SQL Server中,空值不应该与实际数值比较大小,但不禁止(不报错)比较大小,如果进行比较,结果将为“否”。也就是说:
“1>null”,“1=null”,“1 的逻辑运算结果都为否。 需要注意的是,要判定一个值是否为空 3、在实际工作中,如果针对某个含有空值的字段根据大小值进行查询的话,如果没考虑到,就会出现: 大于某值的记录数 (+) 小于或等于某值的记录数 (不等于) 总的记录数 此外,多表联查时,如果没考虑到空值可能会出现意外的数据查询错误。
1.在定义表时
create table t1
(
id int not null , --默认为可以为空
.......
)
2.在筛选字段时,比如你定义邮箱验证表时把没有验证邮箱的用户Email_In的值为空,你要查询没有验证邮箱的用户。要用到的 is null
select * from table where Email_In is null 反之(is not null)为验证过的用户。
http://wenku.baidu.com/link?url=F38-PXlglLPv_XskXIGvXTtPAEGpMBpW5Oys_IwT5v7CgA8DHzzU-qVNetrk0nl7suOrtG0Uxq-iH_XC5X6h9abJ4zl2bEs7vUcn2VKZDW7这个文库应该能很好的解决你的问题!