ページのトップに戻る
Symfoware Server SQLビギナーズガイド

6.2.2 値が特定の範囲に含まれるかを調べる

値が特定の範囲に含まれるかを調べるためには、BETWEEN述語を使用します。指定例を以下に示します。

1

在庫表から在庫数量が50以上で100以下の行を取り出します。

SELECT  … FROM 在庫管理.在庫表

           WHERE  在庫数量 BETWEEN  50  AND  100
                     (1)             (2)      (3)

(1) 値式1

(2) 値式2

(3) 値式3

(1)~(3) BETWEEN述語

BETWEEN述語の結果は、3つの値式の値により以下の条件が満たされる場合、真となります。

値式2 <= 値式1 <= 値式3

値式1が、値式2より小さいか値式3より大きい場合、結果は偽となります。

値式1がNULL値、値式1が値式2以上で値式3がNULL値、または値式1が値式3以下で値式2がNULL値の場合、結果は不定になります。


2

在庫表の在庫数量が10以上で50以下、または200以上で300以下の行を取り出します。

SELECT  …  FROM 在庫管理.在庫表

            WHERE 在庫数量 BETWEEN 10 AND 50 OR

                  在庫数量 BETWEEN 200 AND 300

3

発注表から“仕入価格×発注数量”が100万未満または200万を超える行を取り出します。

SELECT  …  FROM 在庫管理.発注表

    WHERE 仕入価格 * 発注数量 NOT BETWEEN 1000000 AND 2000000
                              ↑
                             NOTの指定

この指定の結果は以下と同じになります。

SELECT  …  FROM 在庫管理.発注表

    WHERE NOT 仕入価格 * 発注数量 BETWEEN 1000000 AND 2000000

値が特定の範囲に含まれるかを調べるためには、比較述語も使用できます。BETWEEN述語で指定した例1を比較述語で指定すると、以下のようになります。


4

在庫表から在庫数量が50以上で100以下の行を取り出します。

SELECT  …  FROM 在庫管理.在庫表  WHERE 在庫数量  BETWEEN 50 AND 100

                        ↓

SELECT  …  FROM 在庫管理.在庫表  WHERE 在庫数量  >= 50 AND 在庫数量  <= 100