在计算查询中的行数时,我应该使用count(*)还是count(a,b,c ..,z)?

时间:2010-11-24 06:22:07

标签: sql database oracle

我应该使用select count(*) from XXX还是select count(a, b, c.., z) from XXX

在计算查询中的行数时,哪一行更快(如果它们有任何差异)?

3 个答案:

答案 0 :(得分:7)

实际上他们是不同的。例如,如果a具有NULL值,则只会获得a不为空的记录数。所以你应该使用slect count(*)来计算查询中的行数

答案 1 :(得分:4)

好的lcount(a,b,c,d)会在大多数数据库上产生语法错误, 你需要数(a),数(b),数(c),数(d)。

如果要计算行数而不是使用count(*)。

如果要计算特定列的非空值的行数,则计算(col)。

答案 2 :(得分:2)

因为COUNT(*) oracle会计算行数,而COUNT(field)会计算field NOT NULL中{0}}的值。这显然比较慢。