データベース・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でない値を返す

-データベース・SQL

© 2021 フリエン生活 Powered by AFFINGER5