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