首页 > 代码库 > T-SQL 聚合函数Count与NULL
T-SQL 聚合函数Count与NULL
大家都知道聚合函数是做统计用的,而count函数是统计行数的,也就是满足一定条件记录的行数。
下面我们来看下这个count与NULL的微妙关系。
CREATE TABLE dbo.Student ( Sno int null ,Name nvarchar(23) ) INSERT INTO dbo.Student(Sno,Name)VALUES(1,‘Jesse‘); INSERT INTO dbo.Student(Sno,Name)VALUES(2,‘Jessca‘); INSERT INTO dbo.Student(Sno,Name)VALUES(3,‘June‘); INSERT INTO dbo.Student(Sno,Name)VALUES(4,‘Supper‘); INSERT INTO dbo.Student(Sno,Name)VALUES(NULL,‘Mike‘);
SELECT * FROM dbo.Student
我们向表student插入了5条记录,其中一条的SNO为NULL。
通常的一种方法是用count(*)
SELECT COUNT(*) FROM dbo.Student
SELECT COUNT(Name) FROM dbo.Student
SELECT COUNT(Sno) FROM dbo.Student
SELECT COUNT(1) FROM dbo.Student
Result:
大家会疑惑这种结果。为什么count(1)会是5.下面我们来研究下下面的几个查询。
SELECT * FROM dbo.Student SELECT Name FROM dbo.Student SELECT Sno FROM dbo.Student SELECT 1 FROM dbo.Student
select 1 是显示结果和表中结果总行数行匹配的,不管是不是NULL。 但是SNO里面有一个NULL,编译器就识别这条记录是无效的。
以上理解仅仅是个人体会,有可能不是太专业,或者有很多错误,还行大路大神多多指教。
T-SQL 聚合函数Count与NULL
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。