Oracle では、特定の null 列を持つ行の数をカウントするタスクがあります。
私はクエリを持っています:
select count(MY_COL) from My_Table where MY_COL is null;
これはゼロの結果を返します。
これがゼロの結果とクエリを返すのはなぜですか
select count(*) from My_Table where MY_COL is null;
正しい結果を返しますか?
どちらの結果も正しいです。
select count(col_name)
null 値に関係なく、すべてのレコードをカウントしながらcol_name
、null以外のレコードをカウントします。select count(*)
これはタヒチで文書化されています:
exprを指定すると、 COUNT は expr がNULLでない行の数を返します。すべての行をカウントすることも、 exprの個別の値のみをカウントすることもできます。
アスタリスク (*) を指定すると、この関数は、重複および NULL を含むすべての行を返します。
COUNT が null を返すことはありません。