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

TSql Count 函数三种写法介绍

时间:2015-09-29 18:43:28      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:

Count常见的有三种写法,count(*),count(expression),count(column_name)

 

Count(expression) ,count(column_name)计数的机制是:计算 expression,或表中column_name的值是否为NULL,如果为NULL则不计数,如果不是NULL则会计数。

count(*),返回表中行的数目。Specifies that all rows should be counted to return the total number of rows in a table,即使有null或duplicate value,也会计算在内。

如果Expression的值不是null,count(expression)和count(*)返回的结果是相同的。

 

示例代码

1,创建示例数据

create table dbo.test
(id int)

insert into dbo.test
values(1),(2),(null)


2,测试 count(expression)

DECLARE @var int=null
select count(@var) from dbo.test

返回的结果是0,原因是expression是null,count函数对null值不计数。

3,测试count(0),count(*)

select count(*) 
from dbo.test
select count(0) 
from dbo.test

技术分享

结果分析:count(*)计算表的行数,不排除null值或duplicate值。由于0是非null值,count(0)和count(*)执行结果是相同的。

 

4,测试count(column_name)

select count(id) 
from dbo.test

技术分享

 结果分析:从表中取出id值,如果为null,则不计数,如果不是null,则计数。

 

参照文档

http://www.cnblogs.com/CareySon/p/DifferenceBetweenCountStarAndCount1.html

https://technet.microsoft.com/en-us/library/ms175997.aspx

 

TSql Count 函数三种写法介绍

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/4846762.html

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