以下SQL Server 2008语句之间有什么区别?
SELECT COUNT(*) FROM dbo.Regular_Report
SELECT COUNT(0) FROM dbo.Regular_Report
SELECT COUNT(1) FROM dbo.Regular_Report
SELECT COUNT(100) FROM dbo.Regular_Report
SELECT COUNT(ID) FROM dbo.Regular_Report
答案 0 :(得分:9)
前四个都是相同的 - 它们计算总行数。
最后一个计算ID
不为空的行数。
答案 1 :(得分:8)
count(id)
将计算id
字段中的非空值。
所有其他人都会计算记录数。
(带有字面数而不是*
的那些将计算该值不为空的所有记录。可能查询规划器将识别出任何记录的字面值永远不会为null,并且执行相同的操作如count(*)
而不是实际计算非空值。)