Symfoware Server SQLビギナーズガイド - FUJITSU -
目次 索引 前ページ次ページ

第6章 いろいろなデータ操作の方法> 6.2 いろいろな探索条件を指定する

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

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2007