比較条件 - Amazon Redshift

比較条件

比較条件では、2 つの値の間の論理的な関係を指定します。比較条件はすべて、ブール型の戻り値を返す 2 項演算子です。Amazon Redshift では、次のテーブルで説明する比較演算子をサポートしています。

演算子 構文 説明
< a < b 値 a は値 b より小さい。
> a > b 値 a は値 b より大きい。
<= a <= b 値 a は値 b 以下。
>= a >= b 値 a は値 b 以上。
= a = b 値 a は値 b と等しい。
<> または != a <> b or a != b 値 a は値 b と等しくない。
ANY | SOME a = ANY(subquery) 値 a はサブクエリによって返されるいずれかの値と等しい。
ALL a <> ALL or != ALL (subquery)) 値 a はサブクエリによって返されるどの値とも等しくない。
IS TRUE | FALSE | UNKNOWN a IS TRUE 値は a はブール数で TRUE。

使用に関する注意事項

= ANY | SOME

ANY と SOME のキーワードは IN 条件と同義であり、1 つまたは複数の値を返すサブクエリによって返された少なくとも 1 つの値に対して比較が true である場合に true を返します。Amazon Redshift は、ANY および SOME に対して = (等しい) 条件のみをサポートします。不等条件はサポートされていません。

注記

ALL 述語はサポートされていません。

<> ALL

ALL キーワードは NOT IN (IN 条件 条件を参照) と同義であり、サブクエリの結果に式が含まれていない場合に true を返します。Amazon Redshift は、ALL に対して <> または != (等しくない) 条件のみをサポートします。他の比較条件はサポートされていません。

IS TRUE/FALSE/UNKNOWN

ゼロ以外の値は TRUE と等しく、0 は FALSE に等しく、Null は UNKNOWN に等しくなります。「ブール型」データ型を参照してください。

ここで、比較条件の簡単な例をいくつか示します。

a = 5 a < b min(x) >= 5 qtysold = any (select qtysold from sales where dateid = 1882

次のクエリは、VENUE テーブルから席数が 10000 席を超える会場を返します。

select venueid, venuename, venueseats from venue where venueseats > 10000 order by venueseats desc; venueid | venuename | venueseats ---------+--------------------------------+------------ 83 | FedExField | 91704 6 | New York Giants Stadium | 80242 79 | Arrowhead Stadium | 79451 78 | INVESCO Field | 76125 69 | Dolphin Stadium | 74916 67 | Ralph Wilson Stadium | 73967 76 | Jacksonville Municipal Stadium | 73800 89 | Bank of America Stadium | 73298 72 | Cleveland Browns Stadium | 73200 86 | Lambeau Field | 72922 ... (57 rows)

この例では、USERS テーブルからロックミュージックが好きなユーザー (USERID) を選択します。

select userid from users where likerock = 't' order by 1 limit 5; userid -------- 3 5 6 13 16 (5 rows)

この例では、USERS テーブルから、ロックミュージックを好きかどうか不明であるユーザー (USERID) を選択します。

select firstname, lastname, likerock from users where likerock is unknown order by userid limit 10; firstname | lastname | likerock ----------+----------+---------- Rafael | Taylor | Vladimir | Humphrey | Barry | Roy | Tamekah | Juarez | Mufutau | Watkins | Naida | Calderon | Anika | Huff | Bruce | Beck | Mallory | Farrell | Scarlett | Mayer | (10 rows

TIME 列の例

次のテーブルの TIME_TEST の例には、3 つの値が挿入された列 TIME_VAL (タイプ TIME) があります。

select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00

次の例では、各 timetz_val から時間を抽出します。

select time_val from time_test where time_val < '3:00'; time_val --------------- 00:00:00.5550 00:58:00

次の例では、2 つの時刻リテラルを比較します。

select time '18:25:33.123456' = time '18:25:33.123456'; ?column? ---------- t

TIMETZ 列の例

次のテーブルの TIMETZ_TEST の例には、3 つの値が挿入された列 TIMETZ_VAL (タイプ TIMETZ) があります。

select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00

次の例では、3:00:00 UTC 未満の TIMETZ 値のみを選択します。値を UTC に変換した後に比較が行われます。

select timetz_val from timetz_test where timetz_val < '3:00:00 UTC'; timetz_val --------------- 00:00:00.5550+00

次の例では、2 つの TIMETZ リテラルを比較します。タイムゾーンは、比較のために無視されます。

select time '18:25:33.123456 PST' < time '19:25:33.123456 EST'; ?column? ---------- t