6. AND 7. OR
1.7 SQL 条件の指定 条件の指定 条件の指定 条件の指定
SQL条件を指定するには、次の構文書式のいずれかを使用します。このリファレンスの構文 図では、バッカス正規形(BNF)表記法のバリエーションの1つを使用しています。このリ ファレンスで使用している表記法の説明は、4.2.6項「バッカス正規形(BNF)表記法規約」
を参照してください。
1.7.1 単純比較条件 単純比較条件 単純比較条件 単純比較条件
単純比較条件は、式または副問合せの結果との比較を指定します。
図 図図
図 1-1 単純比較条件単純比較条件単純比較条件単純比較条件
BNF表記法表記法表記法表記法
{ expr { = | != | ^= | <> | > | < | >= | <= } { expr |"(" subquery")"}
たとえば、次のとおりです。
SELECT * FROM EMP WHERE SAL > 2000;
比較演算子の詳細は、「比較演算子」を参照してください。
1.7.2 グループ比較条件 グループ比較条件 グループ比較条件 グループ比較条件
グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーとの比較を指 定します。
SQL条件の指定
図図図
図 1-2 グループ比較条件グループ比較条件グループ比較条件グループ比較条件
BNF表記法表記法表記法表記法 { expr
{ = | != | ^= | <> | > | < | >= | <= } { ANY | SOME | ALL }
{"(" subquery")"}
| expr_list { = | != }
{ ANY | SOME | ALL } { "(" subquery ")"}
}
たとえば、次のとおりです。
SELECT * FROM EMP WHERE ENAME = any ('SMITH', 'WARD', 'KING');
1.7.2.1 副問合せ比較内の 副問合せ比較内の 副問合せ比較内の 副問合せ比較内の Row_Value_Constructor
これにより、複数列の結果を返す副問合せを使用して、列または式の比較が可能です。この 機能により、カンマで区切りカッコで囲んだ式のリストのような行値コンストラクタをユー ザーが提供できるようになります。
1.7.2.2 列位置の副問合せ 列位置の副問合せ 列位置の副問合せ 列位置の副問合せ
SQL条件の指定
SELECT (select c1 from t1 b where a.c1 = b.c1), c2 from t1 a where <condition>
選択リスト内の副問合せの選択リストには、副問合せを含むことができます。ネストさ れる副問合せの数に制限はありません。
2. 式内の副問合せ。次の問合せがサポートされます(例1と同じ条件とします)。 SELECT * from t1 a where
(select c1 from t1 where c1 = 10) =
(select c1 from t1 b where a.c1 = b.c1) - 20;
3. 副問合せにはGROUP BY、UNION、MINUSおよびINTERSECTを含めますが、
ORDER BY句を含むことはできません。
1.7.3 メンバーシップ条件 メンバーシップ条件 メンバーシップ条件 メンバーシップ条件
メンバーシップ条件は、リストまたは副問合せ内のメンバーシップをテストします。
図 図図
図 1-3 メンバーシップ条件メンバーシップ条件メンバーシップ条件メンバーシップ条件
BNF表記法表記法表記法表記法
expr [NOT] IN { expr_list | "("subquery ")"}
たとえば、次のとおりです。
SELECT * FROM EMP WHERE ENAME not in ('SMITH', 'WARD', 'KING');
1.7.4 範囲条件 範囲条件 範囲条件 範囲条件
範囲条件は、範囲に含まれているかどうかをテストします。
図 図図
図 1-4 範囲条件範囲条件範囲条件範囲条件
SQL条件の指定
BNF表記法表記法表記法表記法
expr [ NOT ] BETWEEN expr AND expr ; たとえば、次のとおりです。
SELECT * FROM EMP WHERE SAL between 2000 and 50000;
1.7.5 NULL 条件 条件 条件 条件
NULL条件は、NULLであるかどうかをテストします。
図図図
図 1-5 NULL条件条件条件条件
BNF表記法表記法表記法表記法
expr IS [NOT] NULL
たとえば、次のとおりです。
SELECT * FROM EMP WHERE MGR IS NOT NULL;
1.7.6 EXISTS 条件 条件 条件 条件
EXISTS条件は、副問合せ内の列の存在をテストします。
図 図図
図 1-6 EXISTS条件条件条件条件
BNF表記法表記法表記法表記法
EXISTS "("subquery")"
SQL条件の指定
1.7.7 LIKE 条件 条件 条件 条件
LIKE条件は、パターン一致を含むテストを指定します。
図 図図
図 1-7 LIKE条件条件条件条件
BNF表記法表記法表記法表記法
char1 [NOT] LIKE char2 [ESCAPE "'"esc_char"'" ] たとえば、次のとおりです。
SELECT * FROM EMP WHERE NAME like 'SM%"
1.7.8 複合条件 複合条件 複合条件 複合条件
複合条件は、他の条件の組合せを指定します。
図 図図
図 1-8 複合条件複合条件複合条件複合条件
BNF表記法表記法表記法表記法
{ "(" condition ")"
| NOT condition
| condition {AND | OR} condition }
;
たとえば、次のとおりです。
SELECT * FROM EMP WHERE COMM IS NOT NULL AND SAL > 1500;
式の指定