2

以下 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
4

2 回答 2

9

前四个都是相同的——它们计算总行数。

ID最后一个计算不为空的行数。

于 2012-11-30T08:49:22.993 回答
8

count(id)将计算字段中的非空值id

所有其他将计算记录数。

(用文字数字代替的那些*将计算该值不为空的所有记录。查询计划器可能会认识到任何记录的文字值永远不会为空,并且执行相同操作count(*)而不是实际计算非空值。)

于 2012-11-30T08:49:35.517 回答