[NOT ]
|
predicate | |||||||
(search-condition) | ||||||||
search-condition | AND
|
search-condition | ||||||
OR
|
このドキュメントでは、次のトピックについて説明します。
search-condition は、単純な predicate、またはブール演算子 AND、OR、NOT、およびカッコ(評価の順序を示す必要がある場合)を組み合せた複数の search-conditions で構成できます。
DEFINE DATA LOCAL 01 NAME (A20) 01 AGE (I2) END-DEFINE ... SELECT * INTO NAME, AGE FROM SQL-PERSONNEL WHERE AGE = 32 AND NAME > 'K' END-SELECT ...
predicate には "true"(真)、"false"(偽)、"unknown"(不明)の条件を指定します。
search-condition の predicate は、単純な比較演算または複雑な比較演算、あるいは他の種類の条件で構成できます。
SELECT NAME, AGE INTO VIEW PERS FROM SQL-PERSONNEL WHERE AGE BETWEEN 20 AND 30 0R AGE IN ( 32, 34, 36 ) AND NAME LIKE '%er' ...
注意:
パーセント記号(%)は Natural 端末コマンドと混同するおそれがあります。 その場合は、"%" と異なる端末コマンド制御文字を定義する必要があります。
各属性については、以降のトピックで説明します(属性の詳細については、関連文献を参照してください)。 上記の構文に関する属性は次のように呼ばれます。
scalar-expression comparison | scalar-expression | ||
subquery |
比較属性は 2 つの値を比較します。
詳細については、scalar-expression を参照してください。
=
|
||
<
|
||
>
|
||
<=
|
||
>=
|
||
< >
|
comparison は次のいずれかの演算子です。
= | 等しい |
---|---|
< | より小さい |
> | より大きい |
<= | より小さいまたは等しい |
>= | より大きいまたは等しい |
< > | 等しくない |
(select-expression) |
subquery は同様の他の式内でネストされた select-expression です。
DEFINE DATA LOCAL 1 #NAME (A20) 1 #PERSNR (I4) END-DEFINE ... SELECT NAME, PERSNR INTO #NAME, #PERSNR FROM SQL-PERSONNEL WHERE PERSNR IN ( SELECT PERSNR FROM SQL-AUTOMOBILES WHERE COLOR = 'black' ) ... END-SELECT
詳細については、「選択式」を参照してください。
scalar-expression [NOT ] BETWEEN scalar-expression AND scalar-expression
|
BETWEEN
属性は範囲値で値を比較します。
詳細については、scalar-expression を参照してください。
column-reference [NOT ] LIKE atom
|
LIKE
属性は特定のパターンを持つ文字列を検索します。
詳細については、column-reference および atom を参照してください。
column-reference IS [NOT ] NULL
|
NULL
属性は空値のテストを行います。
詳細については、column-reference を参照してください。
scalar-expression [NOT ] IN
|
subquery | ||
(atom) |
IN
属性は値の集合で値を比較します。
詳細については、scalar-expression および atom を参照してください。
詳細については、subquery を参照してください。
scalar-expression comparison | ALL
|
subquery | ||
ANY
|
||||
SOME
|
数量属性は値の集合で値を比較します。
詳細については、scalar-expression、comparison、および subquery を参照してください。
EXISTS subquery
|
EXISTS
属性は特定の行の存在についてテストを行います。
EXISTS
属性は、subquery の評価結果が空でない場合、つまり、subquery の WHERE
節の検索条件を満たす subquery の FROM
テーブルに最低 1 つのレコード(行)が存在する場合にのみ、真であると評価します。
EXISTS
の例:
DEFINE DATA LOCAL 1 #NAME (A20) END-DEFINE ... SELECT NAME INTO #NAME FROM SQL-PERSONNEL WHERE EXISTS ( SELECT * FROM SQL-EMPLOYEES WHERE PERSNR > 1000 AND NAME < 'L' ) ... END-SELECT ...
詳細については、subquery を参照してください。