码迷,mamicode.com
首页 > 数据库 > 详细

T-SQL 聚合函数Count与NULL

时间:2017-07-08 17:56:29      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:src   log   val   student   技术分享   聚合函数   个人   insert   upper   

 

大家都知道聚合函数是做统计用的,而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

标签:src   log   val   student   技术分享   聚合函数   个人   insert   upper   

原文地址:http://www.cnblogs.com/Jesse-Li/p/7137255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!