2

これは少し哲学的な質問だと思います...

SQL Server で次のクエリを実行するとします。

SELECT mygroup, COUNT(mycolumn)
FROM mytable
GROUP BY mygroup

カウントされた列には NULL が含まれており、ANSI_WARNINGS オプションがオンになっているため、次のようになります。

警告: Null 値は、集計またはその他の SET 操作によって削除されます。

これが何を意味するのか理解しています。そして、この警告を「修正」する方法はたくさんあります。でも……そもそもなんで文句言ってるの?

NULL をスキップするだけで十分ですCOUNT(mycolumn)この列の NULL を含むすべての行をカウントしたい場合は、 COUNT(*). NULL をスキップするのが私の意図であることは明らかではありませんか?

この明らかなケースであっても、ANSI 標準ではこの警告が要求されていると思います。なんで?

4

1 に答える 1