BETWEEN条件
BETWEEN条件は、1つの式の値が、他の2つの式によって定義された期間内に存在するかどうかを決定します。
between_condition::=
3つのすべての式は、数式、文字式または日時式である必要があります。SQLでは、expr1を複数回評価できます。BETWEEN式がPL/SQLで使用されている場合、expr1は1回のみ評価されることが保証されます。すべての式が同じデータ型ではない場合、式は共通のデータ型に暗黙的に変換されます。それが不可能な場合は、エラーが戻されます。
関連項目:
SQLのデータ型変換の詳細は、暗黙的なデータ変換を参照してください。
次の式の値について考えてみます。
expr1 NOT BETWEEN expr2 AND expr3
この式の値は次の式の値と同じです。
NOT (expr1 BETWEEN expr2 AND expr3)
さらに次の式の値について考えてみます。
expr1 BETWEEN expr2 AND expr3
この式の値は次のブール式の値と同じです。
expr2 <= expr1 AND expr1 <= expr3
expr3 < expr2の場合、この期間は空です。expr1がNULLの場合、結果はNULLとなります。expr1がNULLではない場合、値は通常はFALSEであり、キーワードNOTが使用された場合はTRUEとなります。
ブール演算子ANDを使用すると、予期しない結果となる場合があります。特に、式x AND yでは、条件x IS NULLは式の値を決定するのに十分ではありません。2番目のオペランドも評価する必要があります。2番目のオペランドの値がFALSEの場合、結果はFALSEであり、そうではない場合はNULLとなります。ANDの詳細は、論理条件を参照してください。
表6-10 BETWEEN条件
| 条件の種類 | 操作 | 例 |
|---|---|---|
[NOT] BETWEEN x AND y |
[ |
SELECT * FROM employees WHERE salary BETWEEN 2000 AND 3000 ORDER BY employee_id; |
