NULL処理 複数の項目からNULLでない項目の値を取得する (COALESCE)
文書番号:20338
ISNULL 関数を使うと、ある項目がNULLの場合は別の項目の値を取得することができますが、それを複数の項目で実行したいことがあります。
ISNULL 関数をネストして実現することもできますが COALESCE 関数を使うと簡単に実現できます。
COALESCE 関数は指定した複数の項目のうち、NULLでない最初の値を返します。
文法:COALESCE(項目1,項目2,項目3,・・・)
SELECT 項目1,項目2,項目3,項目4,ISNULL(項目1,項目2,項目3,項目4) AS 値
項目1 項目2 項目3 項目4 値
-----------------------------------------------------
AAA BBB CCC DDD AAA
NULL BBB CCC DDD BBB
NULL NULL CCC DDD CCC
NULL NULL NULL DDD DDD
NULL NULL NULL NULL NULL
※項目1がNULLの場合は項目2の値を、項目2もNULLなら項目3の値を・・・と順に判断して取得する
項目はいくつでも(上限は不明)指定可
すべての項目がNULLの場合はNULLが返る
詳細は[MSDN] COALESCE (Transact-SQL) を参照。