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

最初の 4 つはすべて同一で、行の総数をカウントします。

最後の 1 つは、IDnull でない行の数をカウントします。

于 2012-11-30T08:49:22.993 に答える
8

count(id)フィールド内の null 以外の値をカウントしidます。

他のすべては、レコードの数をカウントします。

( の代わりにリテラルの数字を持つものは*、その値が null ではないすべてのレコードをカウントします。おそらく、クエリ プランナーは、リテラルの値がどのレコードでも null になることは決してないことを認識し、count(*)実際に非null 値)。

于 2012-11-30T08:49:35.517 に答える