MSSql Server中Null值的一些特殊地方

sql空值处理NULL的用法规则
select * from tb_Customer where LastName != null
select null=null
select * from tb_Customer where LastName is null
select * from tb_Customer where LastName is not null
select COUNT(*),COUNT(CustomerID),COUNT(LastName) from tb_Customer 

 sql中,NULL与空格,零,都不相同,是指"不知道",
构成因素:造成某一列为NULL的因素可能是:值不存在、值未知、列对表不可用
与普通值的最大异同是:
相同点:(1)都属于值范畴,1,'aaa',null都是一个值
           (2)都是合法的值,普通的数字、字符可以存在于表中字段,null也可以
不同点:
(1)普通值可以进行运算符操作,如id列为int,id=id+1,但null+1=null
(2)普通值可以进行= 操作,但不能customerNO = null,可以用is null 或 is not null
(3)统计函数count,in不同, count(ID),count(fullName)会忽略null值
(4)排序时不同:order by 时,首先呈现NULL值,用desc降序,null值最后显示 
(5)当使用GROUP BY时,所有的NULL值被认为是相等的
   insert into testNull values('3',null)
   insert into testNull values('4','4')
   select count(b),b from testNull group by b
  返回结果: 0 1 1
结论:可见在group by  的时候,null视为等同.
(6)永远不会有什么数据等于NULL。1不等于NULL,2也一样。但NULL也不等于NULL。所以我们只能比较它“是”或“不是”。    
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值