重要
新規のお客様への Amazon S3 Select の提供は終了しました。Amazon S3 Select をご利用の既存のお客様は、今後も通常どおり使用できます。詳細はこちら
Amazon S3 Select は、以下の条件関数をサポートしています。
CASE
CASE
式は条件関数であり、他の言語で使われている if/then/else
ステートメントと似ています。CASE
は、複数の条件がある場合に、結果を指定するために使用します。CASE
式には、簡易と検索の 2 種類があります。
簡易 CASE
式では、式は値と比較されます。一致が検出された場合、THEN
句で指定されたアクションが適用されます。一致が検出されない場合、ELSE
句のアクションが適用されます。
検索 CASE
式では、各 CASE
がブール式に基づいて評価され、CASE
ステートメントが最初の一致する CASE
を返します。一致する CASE
が WHEN
句で検出されない場合、ELSE
句のアクションが返されます。
構文
注記
現時点で、Amazon S3 Select は ORDER BY
または新しい行を含むクエリサポートしていません。必ず、改行のないクエリを使用してください。
条件の一致に使用する簡易 CASE
ステートメントを以下に示します。
CASE expression
WHEN value
THEN result
[WHEN...] [ELSE result
] END
各条件の評価に使用する検索 CASE
ステートメントを以下に示します。
CASE WHEN boolean condition
THEN result
[WHEN ...] [ELSE result
] END
例
注記
Amazon S3 コンソールを使用して以下の例を実行し、CSV ファイルにヘッダー行が含まれている場合は、[CSV データの最初の行を除外する] を選択します。
例 1: 簡易 CASE
式を使用して、クエリの New York City
を Big Apple
に置き換えます。その他すべての都市名を other
に置換します。
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
クエリ結果:
venuecity | case
-----------------+-----------
Los Angeles | other
New York City | Big Apple
San Francisco | other
Baltimore | other
...
例 2: 検索 CASE
式を使用し、それぞれのチケット販売の pricepaid
値に基づいてグループ番号を割り当てます。
SELECT pricepaid, CASE WHEN CAST(pricepaid as FLOAT) < 10000 THEN 'group 1' WHEN CAST(pricepaid as FLOAT) > 10000 THEN 'group 2' ELSE 'group 3' END FROM S3Object;
クエリ結果:
pricepaid | case
-----------+---------
12624.00 | group 2
10000.00 | group 3
10000.00 | group 3
9996.00 | group 1
9988.00 | group 1
...
COALESCE
COALESCE
は、引数を順に評価し、最初の不明でない値 (最初の非 Null 値または欠落していない値) を返します。この関数は、Null および欠落している値を伝達しません。
構文
COALESCE ( expression
, expression
, ... )
パラメータ
-
expression
-
関数の対象となる式。
例
COALESCE(1) -- 1
COALESCE(null) -- null
COALESCE(null, null) -- null
COALESCE(missing) -- null
COALESCE(missing, missing) -- null
COALESCE(1, null) -- 1
COALESCE(null, null, 1) -- 1
COALESCE(null, 'string') -- 'string'
COALESCE(missing, 1) -- 1
NULLIF
2 つの式があり、2 つの式が同じ値に評価される場合、NULLIF
は NULL
を返し、それ以外の場合、NULLIF
は最初の式を評価した結果を返します。
構文
NULLIF ( expression1
, expression2
)
パラメータ
-
expression1
,expression2
-
関数の対象となる式。
例
NULLIF(1, 1) -- null
NULLIF(1, 2) -- 1
NULLIF(1.0, 1) -- null
NULLIF(1, '1') -- 1
NULLIF([1], [1]) -- null
NULLIF(1, NULL) -- 1
NULLIF(NULL, 1) -- null
NULLIF(null, null) -- null
NULLIF(missing, null) -- null
NULLIF(missing, missing) -- null