Oracle Between 条件
Oracleでは条件指定する際に「BETWEEN AND」を使うことができます。この「BETWEEN AND」は大小比較する際に使います。
BETWEEN {開始} AND {終了}
- 条件指定した2つの期間(開始から終了まで)を取得する
- {開始}以上、{終了}以下
サンプルデータ
empテーブル
empno | empname | salaly | entdate |
A001 | 佐藤花子 | 200,000 | 2016/04/01 |
A002 | 田中太郎 | 400,000 | 2000/04/01 |
A003 | 加藤一 | 180,000 | 2016/04/01 |
A004 | 青木花 | 240,000 | 2010/04/01 |
A005 | 藤田学 | 320,000 | 2005/04/01 |
例1. BETWEENで条件指定する(数値)
--BETWEEN で条件指定する SELECT * FROM emp WHERE salaly BETWEEN 200,000 AND 300,000 ORDER BY empno; --上記と同じ結果になる SELECT * FROM emp WHERE salaly >= 200,000 AND salaly <= 300,000 ORDER BY empno;
empno | empname | salaly | entdate |
A001 | 佐藤花子 | 200,000 | 2016/04/01 |
A004 | 青木花 | 240,000 | 2010/04/01 |
ここでは「salaly BETWEEN 20,000 AND 30,000」とし、「salaly」が20万円以上30万円以下の条件で検索しました。
「BETWEEN AND」は「>=、<=」と同じことができます。
例2. NOT BETWEENで条件指定する(数値)
--BETWEEN で条件指定する SELECT * FROM emp WHERE salaly NOT BETWEEN 200,000 AND 300,000 ORDER BY empno; --上記と同じ結果になる SELECT * FROM emp WHERE salaly < 200,000 OR salaly > 300,000 ORDER BY empno;
empno | empname | salaly | entdate |
A002 | 田中太郎 | 400,000 | 2000/04/01 |
A003 | 加藤一 | 180,000 | 2016/04/01 |
A005 | 藤田学 | 320,000 | 2005/04/01 |
こちらは否定形の「NOT BETWEEN AND」の例です。NOT BETWEENは{開始}より小さい、もしくは{終了}より大きいという意味です。
ここでは20万円未満、もしくは30万円を超えるという条件指定になります。
例3. BETWEENで条件指定する(日付)
--BETWEEN で条件指定する SELECT * FROM emp WHERE entdate BETWEEN '20150401 00:00:00' AND '20190401 00:00:00' ORDER BY empno;
empno | empname | salaly | entdate |
A001 | 佐藤花子 | 200,000 | 2016/04/01 |
A003 | 加藤一 | 180,000 | 2016/04/01 |
数値・文字列だけでなく日付型でも大小比較ができます。
ここでは「entdate BETWEEN ‘20150401 00:00:00’ AND ‘20190401 00:00:00’」とし、「entdate」が2015年4月1日~2019年4月1日の人を検索しました。
参照:BETWEEN条件 – Oracle Database SQL言語リファレンス
以上、Oracleで条件指定する「BETWEEN AND」の使い方でした。
コメント