你为什么要用count('foo')?

时间:2015-05-23 13:13:10

标签: sql sql-server

我已经研究过:

之间的区别
count(*)
count(column_name)
count(1)

例如:此处:Count(*) vs Count(1)。一些回答者还说:count('foo')。你为什么要用count('foo')。这似乎有效:

select count('hello my name is joe bloggs and I finished school about ten years ago') from dbdisposals

为什么要将字符串传递给count函数?

1 个答案:

答案 0 :(得分:3)

使用count中的任何文字值与count(*)具有相同的效果,它会计算组中的行数。使用count('str')count(1)具有相同的效果,即它会计算值不是null的记录。由于任何记录的字面值('str'1)都不会为null,因此会计算所有记录。

count函数计算所有非空值,因此count中的字面值与count(*)具有相同的效果,但count(column_name)仅计算非空值该列中的值。

count中使用字符串文字可以正常工作,唯一的原因就是它可能会让人感到困惑。