count(0)和count(*)哪个效率高?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 23:45:39

count(0)和count(*)哪个效率高?
count(0)和count(*)哪个效率高?

count(0)和count(*)哪个效率高?
(1)count(0)和count(*)不一样,前者会忽略null
(2)一般都用COUNT(1),感觉count(1)比count(*)会快些 SQL code
declare @a table(id int,value1 int)insert @aselect 1,1 union all
select null,null union all
select 3,null union all
select 5,5 union all
select 7,7 select count(0) as a,count(1) as b,count(*) as c, count(value1) as d from @a/*-------------------------a b c d5 5 5 3---------------------------*/ COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } ) 参数ALL对所有的值进行聚合函数运算.ALL 是默认值. DISTINCT
指定COUNT 返回唯一非空值的数量. expression
除text、image 或 ntext 以外任何类型的表达式.不允许使用聚合函数和子查询. *
指定应该计算所有行以返回表中行的总数.COUNT(*) 不需要任何参数,而且不能与 DISTINCT 一起使用.COUNT(*) 不需要 expression 参数,因为根据定义,该函数不使用有关任何特定列的信息.COUNT(*) 返回指定表中行数而不删除副本.它对各行分别计数.包括包含空值的行. 返回类型int 备注COUNT(*) 返回组中的项数.包括 NULL 值和重复项. COUNT(ALL expression) 对组中的每一行都计算 expression 并返回非空值的数量. COUNT(DISTINCT expression) 对组中的每一行都计算 expression 并返回唯一非空值的数量. 对于大于 2^31-1 的返回值,COUNT 生成一个错误.