バージョン 4.2.5
 —  ステートメント  —

検索条件

[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 
...

Top of page

属性

scalar-expression comparison

scalar-expression

 

subquery  
scalar-expression [NOT] BETWEEN scalar-expressionAND scalar-expression
column-reference [NOT] LIKE

atom

[ESCAPEatom]
special-register
column-referenceIS [NOT] NULL    
scale-expression [NOT] IN

subquery

 
(

atom

  )  
special-register ,  
scalar-expression comparison

ALL

subquery    
ANY  
SOME  
EXISTS subquery        

predicate には "true"(真)、"false"(偽)、"unknown"(不明)の条件を指定します。

search-conditionpredicate は、単純な比較演算または複雑な比較演算、あるいは他の種類の条件で構成できます。

例:

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

詳細については、「選択式」を参照してください。

BETWEEN 属性

scalar-expression [NOT] BETWEEN scalar-expression AND scalar-expression

BETWEEN 属性は範囲値で値を比較します。

詳細については、scalar-expression を参照してください。

LIKE 属性

column-reference [NOT] LIKE

atom

[ESCAPE atom]
special-register

LIKE 属性は特定のパターンを持つ文字列を検索します。

詳細については、column-referenceatom、およびspecial-register を参照してください。

NULL 属性

column-referenceIS [NOT] NULL

NULL 属性は空値のテストを行います。

詳細については、column-reference を参照してください。

IN 属性

scalar-expression [NOT] IN

subquery

(

atom , )
special-register

IN 属性は値の集合で値を比較します。

詳細については、scalar-expressionatom、およびspecial-register を参照してください。

詳細については、subquery を参照してください。

数量属性

scalar-expression comparison

ALL

subquery
ANY
SOME

数量属性は値の集合で値を比較します。

詳細については、scalar-expressioncomparison、および subquery を参照してください。

EXISTS 属性

EXISTS subquery

EXISTS 属性は特定の行の存在についてテストを行います。

EXISTS 属性は、subquery の評価結果が空でない場合、つまり、subqueryWHERE 節の検索条件を満たす subqueryFROM テーブルに最低 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 を参照してください。

Top of page