SQLでNULLを別のものに置き換える方法

こんにちは、さるまりんです。

テーブルからデータを取得する際にNULLを別のものに置き換えたいことがあります。

例えばこんなSQLです。

SELECT name, address
FROM friends;

友達(friends)テーブルから名前(name)と住所(address)を取得します。
住所カラムはNULLの場合があります。

addressNULLの時は「住所不明」の文字列として取得したい時、こんなSQLで実現できます。

SELECT id, COALESCE(address, '住所不明')
FROM friends;

関数COALESCEは複数指定された引数の中で、最初のNULLではない値を返却します。

引数を複数指定できるのでこんな感じでも使えます。

SELECT name, COALESCE(address, tel, '住所も電話番号も不明です') as contact
FROM friends;

実際に使ったケースです。

SELECT id, num_of_visits
FROM members;

会員のIDと訪問回数を取得するクエリなのですが、NULLが返ってきたら困るので、デフォルト値として0を入れるのに使いました。

SELECT id, COALESCE(num_of_visits, 0)
FROM members;

他にはどんなところで使えるでしょうね。
考えるのも楽しいです。

読んでくれてありがとうございました。

それではまた!