[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 | ||||
row-value-expression | = | row-value-expression | ||||
< > |
比較属性は、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
を参照してください。
scalar-expression IS [NOT ] DISTINCT FROM scalar-expression |
DISTINCT
属性は、ある値を別の値と比較するか、またはある値のセットを別の値のセットと比較します。
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
を参照してください。