指定した範囲のレコードを検索するにはBETWEEN句を使用します.
BETWEEN句の基本構文は以下のようになります.
SELECT 列名1 ,列名2, ...
FROM テーブル名
WHERE 列名 BETWEEN 下限 AND 上限
BETWEEN句は値が下限以上,上限以下の場合に真を返します. (境界値も含むことに注意してください.) 上記のBETWEEN句を用いたSQLと下記の比較演算子を用いたSQLは等価になります.
SELECT 列名1 ,列名2, ...
FROM テーブル名
WHERE 列名 >= 下限 AND 列名 <= 上限
またBETWEEN句はNOT句と組み合わせることで,指定した範囲に含まれていないデータを取得することができます.
SELECT 列名1 ,列名2, ...
FROM テーブル名
WHERE 列名 NOT BETWEEN 下限 AND 上限
上記のNOT BETWEENを用いたSQLと下記の比較演算子を用いたSQLは等価になります.
SELECT 列名1 ,列名2, ...
FROM テーブル名
WHERE 列名 > 下限 OR 列名 < 上限
例として以下のテーブル(従業員マスタ)から20歳から30歳までの従業員を検出します.
従業員マスタ
従業員コード | 従業員名 | 年齢 |
---|---|---|
00001 | チャーリー・ブラウン | 19 |
00002 | ルシール・ヴァン・ぺルト | 20 |
00003 | ライナス・ヴァン・ぺルト | 21 |
00004 | シュローダー | 29 |
00005 | ペパーミント・パティ | 30 |
00006 | マーシー | 31 |
SQL
SELECT * FROM 従業員マスタ
WHERE 年齢 BETWEEN 20 AND 30
結果
従業員コード | 従業員名 | 年齢 |
---|---|---|
00002 | ルシール・ヴァン・ぺルト | 20 |
00003 | ライナス・ヴァン・ぺルト | 21 |
00004 | シュローダー | 29 |
00005 | ペパーミント・パティ | 30 |
注意.
サンプルで使用するテーブルは説明のため正規化を行っていなかったり,一般的でない列が含まれている場合があります.ご容赦ください.