次の 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
次の 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 つはすべて同一で、行の総数をカウントします。
最後の 1 つは、ID
null でない行の数をカウントします。
count(id)
フィールド内の null 以外の値をカウントしid
ます。
他のすべては、レコードの数をカウントします。
( の代わりにリテラルの数字を持つものは*
、その値が null ではないすべてのレコードをカウントします。おそらく、クエリ プランナーは、リテラルの値がどのレコードでも null になることは決してないことを認識し、count(*)
実際に非null 値)。