SQL Server中,null 与not null 在什么时候用

2024-11-08 07:43:38
推荐回答(3个)
回答(1):

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、在实际工作中,如果针对某个含有空值的字段根据大小值进行查询的话,如果没考虑到,就会出现:

大于某值的记录数 (+) 小于或等于某值的记录数 (不等于) 总的记录数

此外,多表联查时,如果没考虑到空值可能会出现意外的数据查询错误。

回答(2):

1.在定义表时
create table t1
(
id int not null , --默认为可以为空
.......
)
2.在筛选字段时,比如你定义邮箱验证表时把没有验证邮箱的用户Email_In的值为空,你要查询没有验证邮箱的用户。要用到的 is null
select * from table where Email_In is null 反之(is not null)为验证过的用户。

回答(3):

http://wenku.baidu.com/link?url=F38-PXlglLPv_XskXIGvXTtPAEGpMBpW5Oys_IwT5v7CgA8DHzzU-qVNetrk0nl7suOrtG0Uxq-iH_XC5X6h9abJ4zl2bEs7vUcn2VKZDW7这个文库应该能很好的解决你的问题!