-2

SQLサーバーでは、count(column)はnull列もカウントしますか? 試験でこの質問があり、混乱しましたが、最終的にははい count(column) は空の列もカウントするという答えを出しました。自分が正しいのか間違っているのか、ただただ疑問に思っていました。誰でもこれについて何か考えがありますか?

4

2 に答える 2

7

自分で確認するのをやめた理由は何ですか。

CREATE TABLE Test (VALUE VARCHAR(10));

INSERT INTO TEST VALUES ('sdfsdf'), ('sdfgsdfg'),( NULL),( NULL);

SELECT COUNT(VALUE) FROM Test

結果:

COUNT(VALUE)
2

したがって、答えはNOです。COUNT(ColumnName)値のある行はカウントしませんNULL

SQLフィドル

于 2013-09-08T08:54:06.683 に答える
2

COUNT に関する BOL (Books OnLine) の記事には次のように書かれています。

COUNT(*) は、グループ内のアイテムの数を返します。これには、NULL 値と重複が含まれます。

COUNT(ALL 式) は、グループ内の各行の式を評価し、null 以外の値の数を返します。

COUNT(DISTINCT 式) は、グループ内の各行の式を評価し、一意の非 null 値の数を返します。

于 2013-09-08T08:56:21.763 に答える