SQL Server中,null 与not null 在什么时候用
答案:3 悬赏:0
解决时间 2021-01-27 03:41
- 提问者网友:夢醒日落
- 2021-01-26 19:46
SQL Server中,null 与not null 在什么时候用
最佳答案
- 二级知识专家网友:患得患失的劫
- 2021-01-26 20:21
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、在实际工作中,如果针对某个含有空值的字段根据大小值进行查询的话,如果没考虑到,就会出现:
大于某值的记录数 (+) 小于或等于某值的记录数 (不等于) 总的记录数
此外,多表联查时,如果没考虑到空值可能会出现意外的数据查询错误。
要测试一个“对象”为空值时得到结果为真的话,用以下语句:"对象 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楼网友:妄饮晩冬酒
- 2021-01-26 20:40
我暂时保留我的看法!
- 2楼网友:酒醒三更
- 2021-01-26 20:26
1.在定义表时
create table t1
(
id int not null , --默认为可以为空
.......
)
2.在筛选字段时,比如你定义邮箱验证表时把没有验证邮箱的用户Email_In的值为空,你要查询没有验证邮箱的用户。要用到的 is null
select * from table where Email_In is null 反之(is not null)为验证过的用户。
create table t1
(
id int not null , --默认为可以为空
.......
)
2.在筛选字段时,比如你定义邮箱验证表时把没有验证邮箱的用户Email_In的值为空,你要查询没有验证邮箱的用户。要用到的 is null
select * from table where Email_In is null 反之(is not null)为验证过的用户。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯