見出し画像

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を返し
第一引数と第二引数が不一致だった場合は第一引数を返します。

わかりやすい説明サイトはコチラ

この記事が気に入ったらサポートをしてみませんか?