記事内に広告が含まれています。

【SQL】COALESCE関数の使い方

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 と評価されない最初の式の現在の値を返します。