特定のテーブルからすべてのレコードを取得する必要がある場合はほとんどありません。代わりに、特定の条件または特定の範囲内に一致するレコードをフェッチしていることに気付くことがよくあります。
この投稿では、Oracle データベースで BETWEEN 演算子を使用して、データベース テーブルから特定の範囲に一致する値を持つ行を選択する方法を学習します。
Oracle BETWEEN 演算子
Oracle の BETWEEN 演算子を使用すると、SELECT、INSERT、UPDATE、DELETE などの DML ステートメントを使用するときに検索条件を指定できます。
SELECT ステートメントで BETWEEN 演算子を使用すると、値が指定された範囲内にある行のみが選択されます。
BETWEEN 演算子の構文は、次のように表されます。
表現 の間に Lower_range と upper_range;
この場合、式は、範囲値をテストするターゲット式を定義します。
給与が特定の範囲内にある従業員のテーブルからすべての行をフェッチしたいとします。この場合、salary 列は式として参照されます。
以下は、前のアナロジーの疑似構文です。
選択する 列 どこ 給料 の間に 値_1 と 値_2;lower_range および upper_range パラメータを使用して、範囲に含める最低値と最高値を設定します。
lower_range および upper_range パラメーターは、AND 演算子によってリンクされます。
ステートメントを実行すると、BETWEEN 演算子は、lowest_range 以上で upper_range 以下の値に対して TRUE を返します。
ほとんどの場合、BETWEEN 演算子は、検索条件を導入できる WHERE 句と共に使用されます。
Oracle BETWEEN 演算子の例
このセクションでは、Oracle データベースで BETWEEN 演算子を使用する例をいくつか示します。
次のようなテーブルがあるとします。
選択する 従業員ID 、 ファーストネーム 、 Eメール 、 給料 から 従業員;結果の表:
例 1: BETWEEN 演算子を使用した数値範囲のテスト
給与が 20000 から 50000 の範囲にあるすべての従業員を特定したいとします。
以下に示すように、WHERE 句と組み合わせて BETWEEN 演算子を使用して SELECT ステートメントを実行できます。
選択する 従業員ID 、 ファーストネーム 、 Eメール 、 給料から 従業員
どこ 給料 の間に 20000 と 50000 ;
前のクエリは、次に示すように、給与がその範囲内にある従業員を返す必要があります。
ここでは、その給与範囲に一致する行が 1 つだけあります。
例 2: BETWEEN 演算子を使用した日付範囲のテスト
BETWEEN 演算子を使用して、特定の日付範囲に一致するレコードを検索することもできます。
次の表を例に取ります。
選択する ファーストネーム 、 Eメール 、 HIRE_DATE 、 給料から 従業員;
雇用日が特定の範囲内にあるすべての従業員を特定したいとします。
以下に示すように、BETWEEN 演算子と WHERE 句を組み合わせることもできます。
選択する ファーストネーム 、 Eメール 、 HIRE_DATE 、 給料から 従業員
どこ HIRE_DATE の間に 日にち '2006-01-01' と 日にち '2007-01-01' ;
この場合、hire_date 列の値が 2006-01-01 から 2007-01-01 の間にある検索条件をテストします。
これにより、次のように一致する行が返されます。
すべての値が指定された日付の範囲内にあることに注意してください。
例 3: BETWEEN 演算子と Order By 句の使用
Oracle では、ORDER BY や GROUP BY などの句を使用して、結果の値を特定の順序で並べることもできます。
たとえば、給与の値が高いものから低いものの順に、前のテーブルを並べ替えることができます。
選択する ファーストネーム 、 Eメール 、 HIRE_DATE 、 給料から 従業員
どこ HIRE_DATE の間に 日にち '2006-01-01' と 日にち '2007-01-01'
注文 沿って 給料 説明 ;
結果のテーブルは次のとおりです。
結論
このチュートリアルでは、Oracle データベースでの BETWEEN 演算子の使用法を調べました。これにより、値が特定の範囲に一致する行を検索できます。