Oracle Betweenで条件指定するパターン

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」の使い方でした。

 

コメント