Sql Server中的Null值

1、NULL 是Sql Server中的数据类型, NULL的值是未知的、是不确定的。由于 NULL 存在着无数的可能,因此两个 NULL 不是相等的关系,同样也不能说两个 NULL 就不相等,或者比较两个 NULL 的大小,这些操作都是没有意义,得不到一个确切的答案的。因此,对 NULL 的 = 、 != 、 > 、 < 、 >= 、 <= 等操作的结果 都是未知的,也就算说,这些操作的结果仍然是 NULL 。


2、SQL提供了两个谓词Is NULL和IS Not NULL来取代=null和<>null, 使用not in 谓词过滤数据时,如果 in的值中包含null,则永远不会返回值


3、当进行分组和排序时 ,认为两个NULL值是相等的,就是说GROUP BY子句会在每个组中重新组织所有的NULL值


 
4、OrderBY子句也会对所有的NULL值进行排序,T-SQL是把NULL值得排在了有效值之前


5、所有的聚合函数都会忽略NULL值,只有一个例外Count(*),假设一个组有两行,其QTY分别为3,null,表达式Count(*)返回2,COunt(QTY)返回1


6、判断null值语句:select * from 表 where 字段 is null;



7、转换null值语句:select 字段1,字段2,字段3,isnull(字段3,’某个值’)  from 表; 


 

二、变量的默认值与 null 值


命名一个变量后,如果没有给它赋初始值,它的值就是 null 。有时候需要注意初始 null 值和通过 select 语句给变量后期赋 null 的区别。因为此 ’null’ 非彼 ’null’ 。



三、Case 语句中的 null


Case 中的 when 语句注意不要写成 when null,   否则得不到想要的结果。


下面的第 1 条 sql 错误, 2 , 3 正确。


select case column2 when null then 'a' else 'b'    end as column3 from cassaba_null

select case isnull ( column2, 'a' )   when 'a'   then 'a' else 'b' end as column3 from cassaba_null

select case when column2 is null then 'a' else 'b' end as column3 from cassaba_null



文章转载自:   Sql Server中的Null值   http://www.studyofnet.com/news/663.html




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值