データベース・SQL

【COALESCE】SQLでNULLを別の値に置き換える

COALESCE関数とは?

COALESCE関数は引数を順番に評価し、NULL と評価されない最初の式の現在の値を返します。
つまり、「SQLの実行結果がNULLだったらデフォルト値を返す」みたいなことができます。

COALESCE関数の使い方

COALESCE(値1, 値2, 値3, 値4, ...)といったように、引数を渡して使います。

これだけだと、イメージしにくいので、実際に使ってみます。
例として、次のようなitemsテーブルがあるとします。各商品はカテゴリを持つ。

id name price category
1 りんご 200 1
2 250 1
3 バナナ 150 1
4 豚バラ 200 2
5 牛ロース 300 2
6 ボディーソープ NULL 3

COALESCEを使わずにカテゴリごとの合計金額を取得してみる

まずはCOALESCEを使わないパターン。

category: 3のitemのpriceはNULLなので、合計した値もNULLになってしまいます。

集計するときなど、こういった値を0として表示したいときもあります。

そういったときにCOALESCE関数が役立ちます。

COALESCE関数を使ってカテゴリごとの合計金額を取得する(NULLの場合は0にする)

category: 3の合計金額が0になりました!!

 

COALESCE関数まとめ

  • COALESCE(値1, 値2, 値3, 値4, ...)といくつも引数を渡せる
  • 最初のNULLでない値を返す

イチオシ記事

1

自己紹介 フリーランスエンジニアをしているヨノと申します。 独学でプログラミングを学び、ソシャゲ・SaaS開発などを経て、2018年からフリーランスエンジニアとして活動しています。 主にバックエンド中 ...

2

はじめまして、フリーランスエンジニアのヨノと申します。 自己紹介 独学でプログラミングを学び、ソシャゲ・SaaS開発などを経て、2018年からフリーランスエンジニアとして活動しています。 主にバックエ ...

3

ネット上で色々言われているフリーランスエンジニア....。「本当はどうなの?」と思っている人は多いでしょう。 そこで本記事ではフリーランスエンジニア5年生の私が、ネット上の意見も引用しながら実態を解説 ...

-データベース・SQL