MySQLでNULLを任意の値に置換して取得する方法

MySQL

DBからデータを抽出する際にnullの値を別の値に置き換えてデータの一覧を生成したい時があるかと思います。エンジニア以外にデータを渡すときはnullだ処理しにくく、”データなし”とか”0”とかに置き換えたほうが良い時もあります。

今までスプレッドシートで変換していたのですが、SQLで取得する時にできたので、紹介です。

スポンサーリンク

ifnullを使って任意の文字列に置き換える

select ifnull(カラム名, 置き換える文字列) from ***;

これでnullの場合任意の文字列に置き換えることができます。

使い方の紹介

例えば以下のようにテストの結果が入っているテーブルがあったとします。欠席の場合、nullになるシステムからデータを抽出して、欠席者は0点として、エクセルで集計したくなったと想定します。

テーブルのデータ

idnamescore
1山田70
2田中null
3伊藤90
4大野100
select name, ifnull(score, 0) from test_score;

出力データ

idnamescore
1山田70
2田中0
3伊藤90
4大野100

役立ちそうな場面

left joinして別テーブルのデータがない場合に処理したいといった場面で、出番が増えそうな気がします。

これを使うことで、スプレッドシートで毎回変換していた手間がなくなると思うと、使い道はありそうだなと感じています。