• ベストアンサー

あるカラムを対象に、Nullと空文字をゼロとして抽出したい

SQL server 2005についての質問です。 ISNULL関数を使うと、Nullをゼロとして取り出せることがわかりました。 しかし、空文字をゼロとして取り出すことはできないようでした。 Nullと空文字が入り混じったカラムを対象に、Nullだけでなく空文字もゼロとして取り出す関数などはあるでしょうか? 以上、どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

空文字が存在しうるのはvarchar,charなどの文字列型のフィールドだけですが、ゼロとして取り出すんですね。 (普通にはISNULL(FIELD,'')として、両方空文字として取り出すことが多いですが) ともかく、以下のようにすれば目的は満たせます。 SELECT ISNULL(NULLIF(FIELD,''),'0') FROM TABLE

tekan
質問者

お礼

jamshid6さん ISNULL関数とNULLIF関数を組み合わせるんですね。 大変参考になりました! ご回答ありがとうございました。

その他の回答 (1)

回答No.2

参考意見として。 もしこのSQLの結果をVBなどの言語を使って取り出しているなら、 取り出し側で「Nullや空文字なら0を返す」関数を作ってそれを通すという方法もあります。

tekan
質問者

お礼

khazad-leftyさん なるほど。。 解決策の候補として、参考にさせていただきます。 ご回答ありがとうございました。

関連するQ&A