NULLの扱い方_BigQuery_SQLチートシート
NULLがあると計算に支障があるので前処理が必要
nullを100で割ることはできないので
IFNULLやCOALESCEを使って前処理をする必要があります。
SELECT
null / 100 AS null_num,
IFNULL(null,0) / 100 AS ifnull_num,
NULLの扱い方
IFNULL関数
下記とすると、もしageカラムがnullだった場合は0埋めしてくれることになります。
SELECT
user_id,
age,--ユーザー氏名,
IFNULL(age,0) AS anaume
FROM ユーザーテーブル
公式サイト:
COALESCE関数
もしuser_idがnullだった場合は、仮のuser_idで埋めてくれるようになります。
SELECT
COALESCE(user_id,kari_user_id) AS user_id,
age,
FROM ユーザーテーブル
IFNULL と NULLIFの違い
実際に違いを見てみます
SELECT
IFNULL(NULL, 0) AS ifnull_null,
IFNULL(10, 0) AS ifnull_10,
NULLIF(0, 0) AS nullif_0,
NULLIF(10, 0) AS nullif_10,
IFNULLは第一引数がNULLだった場合、第二引数を返し、
第一引数がNULLでなかった場合は、第一引数を返します。
NULLIFは第一引数と第二引数が一致する場合はNULLを返し
第一引数と第二引数が不一致だった場合は第一引数を返します。
わかりやすい説明サイトはコチラ