Between...And 演算子

式の結果が指定した値の範囲内にあるかどうかを判断します。SQL ステートメントの中でこの演算子を使用することができます。

構文

expr [Not] Between value1 And value2

Between...And 演算子には、次の指定項目があります。

指定項目 説明
expr 評価するデータのあるフィールドを識別する式。
value1value2 引数 expr を評価するための式。

解説

引数 expr の値が引数 value1 から value2 までの範囲内であれば、Between...And 演算子は True を返します。範囲外であれば、False を返します。Not 論理演算子を組み合わせれば、反対の条件 (引数 expr が引数 value1 および value2 で定義された範囲外にあるかどうか) を評価することができます。

Between...And 演算子を使用すると、フィールドの値が指定した数値の範囲内にあるかどうかを判断できます。次の例は、特定の範囲の郵便番号に該当する場所に商品が発送されたかどうかを調べます。郵便番号が 100 〜 179 であれば、IIf 関数は "東京 23 区内" を返し、そうでなければ "そのほかの地域" を返します。

SELECT IIf(郵便番号 Between 100 And 179, "東京 23 区内", "そのほかの地域")

FROM 出版社

    

引数 exprvalue1、または value2 のいずれかが Null 値であれば、Between...And 演算子は Null 値を返します。

アスタリスク (*) などのワイルドカード文字はリテラル文字列として扱われるため、Between...And 演算子では使用できません。たとえば、980 〜 989 で始まる郵便番号を探すために 980* や 989* を使用できません。この場合、検索する方法は 2 つあります。1 つは、テキスト フィールドの左側の 3 文字を取得する式をクエリに追加し、取得した文字に対して Between...And 演算子を適用する方法です。もう 1 つは、98000 〜 98999 のように番号の前または後に文字を補う方法です。98000 〜 98999 - 9999 のように拡張郵便番号を使う場合は、- 0000 は補いません。- 0000 が使われているかどうかによって 98000 が検索項目から削除される可能性があります。

参照
IN 句 (Microsoft Jet SQL) SQL 式
WHERE 句 (Microsoft Jet SQL)  

使用例

SQL サブクエリの使用例