6. AND 7. OR
1.7 SQL 条件の指定 条件の指定 条件の指定 条件の指定
SQL条件を指定するには、次の構文書式のいずれかを使用します。このリファレンスの構文 図では、バッカス正規形(BNF)表記法のバリエーションの1つを使用しています。このリ ファレンスで使用している表記法の説明は、4.2.6項「バッカス正規形(BNF)表記法規約」
を参照してください。
1.7.1 単純比較条件 単純比較条件 単純比較条件 単純比較条件
単純比較条件は、図1-1に示す構文を使用して、式または副問合せの結果との比較を指定し ます。
図 図図
図1-1 単純比較条件単純比較条件単純比較条件単純比較条件
RR 年号の最後の2桁; 外国での年号。
SS 秒(0~59)。
SSSSS 午前0時以降の秒数(0~86399)。
- / . ; : "テキスト" 句読点と引用符付きテキストが結果にコピーされます。
表 表表
表1-7 Oracle Database Liteの日付書式(続き)の日付書式(続き)の日付書式(続き)の日付書式(続き)
要素 要素要素
要素 説明説明説明説明
SQL条件の指定
SQLの使用方法 1-17 BNF表記法表記法表記法表記法
{ expr { = | != | ^= | <> | > | < | >= | <= } { expr |"(" subquery")"}
たとえば、次のとおりです。
SELECT * FROM EMP WHERE SAL > 2000;
比較演算子の詳細は、2.4項「比較演算子」を参照してください。
1.7.2 グループ比較条件 グループ比較条件 グループ比較条件 グループ比較条件
グループ比較条件は、図1-2に示す構文を使用して、リストまたは副問合せ内の任意または すべてのメンバーとの比較を指定します。
図図図
図1-2 グループ比較条件グループ比較条件グループ比較条件グループ比較条件
SQL条件の指定
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 列位置の副問合せ 列位置の副問合せ 列位置の副問合せ 列位置の副問合せ
算術式または列を指定できるところであれば、副問合せを挿入できます。副問合せは、カッ コで囲み1つの列につき最大1行を返すものに限定されます。
たとえば、次のとおりです。
1. 選択リスト内の副問合せ。次の問合せがサポートされます(c1とc2は表t1内の列で、
c1は主キーとします)。
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句を含むことはできません。
SQL条件の指定
SQLの使用方法 1-19
1.7.3 メンバーシップ条件 メンバーシップ条件 メンバーシップ条件 メンバーシップ条件
メンバーシップ条件は、図1-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に示す構文を使用して、範囲に含まれているかどうかをテストします。
図図図
図1-4 範囲条件範囲条件範囲条件範囲条件
BNF表記法表記法表記法表記法
expr [ NOT ] BETWEEN expr AND expr ; たとえば、次のとおりです。
SELECT * FROM EMP WHERE SAL between 2000 and 50000;
SQL条件の指定
1.7.5 NULL 条件 条件 条件 条件
NULL条件は、図1-5に示す構文を使用して、NULLであるかどうかをテストします。
図 図図
図1-5 NULL条件条件条件条件
BNF表記法表記法表記法表記法
expr IS [NOT] NULL たとえば、次のとおりです。
SELECT * FROM EMP WHERE MGR IS NOT NULL;
1.7.6 EXISTS 条件 条件 条件 条件
EXISTS条件は、図1-6に示す構文を使用して、副問合せ内の列の存在をテストします。
図図図
図1-6 EXISTS条件条件条件条件
BNF表記法表記法表記法表記法
EXISTS "("subquery")"
たとえば、次のとおりです。
SELECT * FROM EMP WHERE EXISTS (SELECT ENAME FROM EMP WHERE MGR IS NULL);
1.7.7 LIKE 条件 条件 条件 条件
LIKE条件は、図1-7に示す構文を使用して、パターン一致を含むテストを指定します。
図 図図
図1-7 LIKE条件構文条件構文条件構文条件構文
SQL条件の指定
SQLの使用方法 1-21 BNF表記法表記法表記法表記法
char1 [NOT] LIKE char2 [ESCAPE "'"esc_char"'" ] たとえば、次のとおりです。
SELECT * FROM EMP WHERE NAME like 'SM%"
1.7.8 複合条件 複合条件 複合条件 複合条件
COMPOUND条件は、図1-8に示す構文を使用して、他の条件の組合せを指定します。
図図図
図1-8 複合条件複合条件複合条件複合条件
BNF表記法表記法表記法表記法
{ "(" condition ")"
| NOT condition
| condition {AND | OR} condition }
;
たとえば、次のとおりです。
SELECT * FROM EMP WHERE COMM IS NOT NULL AND SAL > 1500;
式の指定