かるあ のメモ

アクセスカウンタ

help リーダーに追加 RSS SQLServer の警告が取れない

<<   作成日時 : 2008/05/13 18:08   >>

トラックバック 0 / コメント 0

うーん、警告が取れない。
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 するのもどうかと思うし。。。
今回は時間切れ、とりあえず警告無視の方向で(汗

設定テーマ

関連テーマ 一覧

月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文