|
うーん、警告が取れない。
SQLServer 2005 で次のように集計対象の列にNULLが含まれる場合に警告が出る。 select count(a), count(b), count(c)
from (
select null a, null b, 3 c
union all select null a, 2 b, 3 c
union all select 1 a, 2 b, 3 c
) [t] → 結果として 1, 2, 3 がほしい。
結果は正しく取れるんだけれど次の警告が発生する。
「警告: NULL 値は集計またはその他の SET 演算で削除されました。」 どうやら NULL を含む列に対して集計関数をかけた場合に出るメッセージらしいんだけれど、count で NULL でない行を取得したいので今回は困る。
count をとる対象が 1 列だけならこれも検索条件ではじけばどうにかなるんだけれど、今回は複数だし。。。
まさか、case で case when a is null then 0 else 1 end とかして sum するのもどうかと思うし。。。
今回は時間切れ、とりあえず警告無視の方向で(汗
|