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

CASE 式

構文

CASE 式は条件式であり、他の言語で検出される if/then/else ステートメントと同様です。複数の条件がある場合、CASE は結果を指定するために使用されます。

2 種類の CASE 式 (簡易および検索) があります。

簡易 CASE 式では、式は値と比較されます。一致が検出された場合、THEN 句で指定されたアクションが適用されます。一致が検出されない場合、ELSE 句のアクションが適用されます。

検索 CASE 式では、CASE ごとにブール式に基づいて検証され、CASE ステートメントは最初を満たす CASE を返します。WHEN 句を満たす CASE が検出されない場合、ELSE 句のアクションが返されます。

条件を満たすために使用される簡易 CASE ステートメント

Copy
CASE expression WHEN value THEN result [WHEN...] [ELSE result] END

各条件を検証するために使用する検索 CASE ステートメント

Copy
CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] END

引数

expression

列名または有効な式。

数値定数または文字列などの式を比較する値。

result

式またはブール条件が検証されるときに返されるターゲット値または式。

ブール条件

値が定数と等しい場合、ブール条件は有効または true となります。true の場合、後続の THEN 句に指定された結果を返します。条件が false の場合、後続の ELSE 句に指定された結果を返します。ELSE 句が省略され、一致する条件がない場合、結果は Null となります。

簡易 CASE 式を使用し、VENUE テーブルに対するクエリで New York CityBig Apple に置換します。その他すべての都市名を other に置換します。

Copy
select venuecity, case venuecity when 'New York City' then 'Big Apple' else 'other' end from venue order by venueid desc; venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ... (202 rows)

検索 CASE 式を使用し、それぞれのチケット販売の PRICEPAID 値に基づいてグループ番号を割り当てます。

Copy
select pricepaid, case when pricepaid <10000 then 'group 1' when pricepaid >10000 then 'group 2' else 'group 3' end from sales order by 1 desc; pricepaid | case -----------+--------- 12624.00 | group 2 10000.00 | group 3 10000.00 | group 3 9996.00 | group 1 9988.00 | group 1 ... (172456 rows)

このページの内容: