Redshiftで使えるNVLとCOALESCEってどう違うんだろうと気になって調べたところ同じ内容ということでした。
忘れそうなのでメモします。
NVL 式は COALESCE 式と同じです。NVL および COALESCE はシノニムです。
どちらも引数の中からNULLではない最初の値を返すとのこと。
NULLの項目を0などに置き換える時によく使われる印象があります。
ドキュメントからの引用ですが、以下のようにNULLを値を持つテーブルがあったとしたら
create table datetable (start_date date, end_date date); insert into datetable values ('2008-06-01','2008-12-31'); insert into datetable values (null,'2008-12-31'); insert into datetable values ('2008-12-31',null);
以下のNVLとCOALESCEは同じ結果を返します。
NVL
select nvl(start_date, end_date) from datetable order by 1;
COALESCE
select coalesce(start_date, end_date) from datetable order by 1;