COALESCE関数の使い方です。
Oracle・SQL Server・MySQL・PostgreSQLなど、主要なDBMSで提供されています。
COALESCE関数の使い方
COALESCE関数は、引数に渡した値を先頭から評価(判定)して、NULLではない最初の引数の値を返してくれます。使いどころとしては、nullとして返って来る値を別の値として返したい時に使います。
--COALESCE関数の基本構文 SELECT COALESCE(null,N'nullだよ')
超絶簡単なクエリをSQL Serverで実行してみます。
取り敢えず適当に引数を渡してみます。
COALESCE関数は、「引数に渡した値で一番最初のnullではない値」が返ってくる仕様なので、上記のクエリの場合は第1引数が返って来ます。
第1引数にnullを渡すと、第2引数の値がnullでない場合に、第2引数の値が返って来ます。
これは第2引数までをnullにしたパターン。
第3引数がnullではないので、第3引数の値が返って来ます。
全ての引数の値がnullはエラー
COALESCE関数で、全ての引数の値がnullの場合はエラーが出ます。
--COALESCE関数の基本構文 SELECT COALESCE(null,null,null)
というか、何のためにCOALESCE関数を使ってるのか意味が分からないです…。
SQL Server の場合、エラーメッセージ4127が表示されます。
nullを空文字として置き換える
よくあるパターンとして、nullを空文字として置き換えるパターンですね。
SQL Server の場合、null と空文字は別の扱いなので、検索結果が異なるため、下記の様に null を空文字に置き換えているパターンがあります。
SELECT COALESCE(null,'') SELECT COALESCE(null,N'')
上記の様にすると、nullが空文字に置き換わります。
参考サイト
COALESCE (Transact-SQL) - SQL Server
COALESCE の Transact-SQL リファレンス。NULL と評価されない最初の式の現在の値を返します。