メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

NVL 式

NVL 式は COALESCE 式と同じです。NVL および COALESCE はシノニムです。

構文

Copy
NVL | COALESCE ( expression, expression, ... )

NVL または COALESCE 式は、Null ではないリストの最初の式の値を返します。式がすべて Null の場合、結果は Null です。非 Null の値が検出された場合、リストの残りの式は検証されません。

参照する値がないか Null の場合に何かにバックアップ値を返す際に、この式の型は役に立ちます。例えば、クエリは 3 つの電話番号 (携帯、自宅、職場の順) のうち、いずれかテーブルで最初に検出された 1 つを返す可能性があります (Null でない)。

START_DATE および END_DATE 列でテーブルを作成し、Null 値を含む行を挿入して、NVL 式をその 2 列に適用します。

Copy
create table datetable (start_date date, end_date date);
Copy
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);
Copy
select nvl(start_date, end_date) from datetable order by 1; coalesce ------------ 2008-06-01 2008-12-31 2008-12-31

NVL 式のデフォルトの列名は COALESCE です。次のクエリは同じ結果を返します。

Copy
select coalesce(start_date, end_date) from datetable order by 1;

特定の関数または列に Null 値を返すクエリが予想される場合、NVL 式を使用して Null を他の値に置換できます。例えば、SUM などの集計関数は検証する行がない場合に、ゼロの代わりに Null 値を返します。NVL 式を使用し、これらの Null 値を 0.0 で置換できます。

Copy
select nvl(sum(sales), 0.0) as sumresult, ...

このページの内容: