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。所以我们只能比较它“是”或“不是”。