BQのnullチェック、nvlではなく、ifnull。但しちょっと注意が必要。


はい、ちょっとBQに触る必要があって適当に作っていて、
nullだった時にデフォルト入れるやつ、oracleだとnvlだけど、postgreSQLだとCOALESCEだし、なんか違うかな、って思って調べたら「ifnull」でした。

これがまあ一番しっくりくるといえば、そう。

但しちょっと癖があって、色々こねた後の「最後のSQL」とかに使おうとするとダメだった。
with句でこねた部分に使ったら使えたので、元のデータには使えるけど、加工後のwith句後では使えない、とかそう言うことかもしれない(ちゃんと調べてない)


例)
select ifnull(dat,'_') as dat from null_table ※これはOK
with dat_table as (select dat from null_table) select ifnull(dat,'_') as dat from dat_table ※これはダメ
with dat_table as (select ifnull(dat,'_') from null_table) select dat from dat_table ※これはOK