こんにちは、さるまりんです。
テーブルからデータを取得する際にNULL
を別のものに置き換えたいことがあります。
例えばこんなSQLです。
SELECT name, address
FROM friends;
友達(friends
)テーブルから名前(name
)と住所(address
)を取得します。
住所カラムはNULL
の場合があります。
address
がNULL
の時は「住所不明」の文字列として取得したい時、こんな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;
他にはどんなところで使えるでしょうね。
考えるのも楽しいです。
読んでくれてありがとうございました。
それではまた!