条件関数 - Amazon Simple Storage Service

条件関数

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