2019-04-02に更新

SQLでNULLを0として出力する方法

MySQLで外部結合したときに、COUNT()の結果が0件だとNULL値が返却されてしまったため、NULLを0として表示する関数を調べました。
ついでに他のDBについても書きました。

関数

IFNULL (a, 0)
MySQLSQLite

COALESCE (a, 0)
MySQLSQLitePostgreSQLOracle

NVL (a, 0)
Oracle

ISNULL (a, 0)
SQL Server

使い方

第1引数(この場合カラムa)がNULLだった場合、関数は第2引数(この場合は0)を返します。
第1引数がNULLでなければ、関数はそのまま第1引数を返します。

これらは同じような使い方ができますが、COALESCE()だけ仕様が異なり、引数を無限に設定することができます。
COALESCE()は第1引数から順に「その値がNULLかどうか」を判定し、NULLであれば次の引数へ、NULLでなければその値を返却します。
全ての引数がNULLだった場合は、諦めてNULLを返却します。


ウラル

Splatoonの二次創作サイト「スプランプ」の管理人です。サーモンラン研究所やオクトチャット、フェス速報などを作りました。

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント