oracle – select count(*)和select count(any_non_null_column)
我似乎记得(在Oracle上)从any_table发出select count(*)和从any_table中选择count(any_non_null_column)之间存在差异.
如果有的话,这两个陈述之间有什么区别? > COUNT(*)将包括NULLS> COUNT(column_or_expression)不会. 这意味着COUNT(any_non_null_column)当然会给出与COUNT(*)相同的结果,因为没有NULL值会导致差异. 通常,COUNT(*)应该更好,因为可以使用任何索引,因为COUNT(column_or_expression)可能没有索引或SARGable 从ANSI-92(寻找“标量表达式125”)
同样的规则至少也适用于SQL Server和Sybase 注意:COUNT(1)与COUNT(*)相同,因为1是不可为空的表达式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |