範囲検索を行う「BETWEEN」条件
「BETWEEN」を使用することにより範囲検索を行うことができます。
「BETWEEN」の基本構文
<式1> [NOT] BETWEEN <式2> AND <式3>
式2が式1以下かつ式1が式3以下を表します!「式2≦式1≦式3」ってことです。
「BETWEEN」の注意点としては2つあります。
まず1つ目としては、評価のされ方が以下ってことですね。大なり小なりではないことを覚えておきましょう!
2つ目は3つある式のデータ型が異なる場合、暗黙の型変換が行われます。
暗黙の型変換はオーバーヘッドなのでなるべく起こらないようにしましょう。数件程度のデータの場合は、大丈夫でしょうが・・・数百万件~数千万件と処理数が大きくなるとパフォーマンスに悪影響を及ぼす可能性があります。
「BETWEEN」の実行例
SQL> select * from animal1; ID NAME ADDRESS ----- ---------- ---------- 001 いるか 海 002 うさぎ 陸 003 ぺんぎん 空 004 いるか 海 SQL> select * from animal1 2 where id BETWEEN '002' AND '004'; ID NAME ADDRESS ----- ---------- ---------- 002 うさぎ 陸 003 ぺんぎん 空 004 いるか 海
「BETWEEN」の実行例 日付の場合
よくあるのは日付型の場合の範囲検索です。「TO_DATE」関数を使用して型変換を自分で行うようにしましょう。
BETWEEN TO_DATE('YY-MM-DD 00:00:00', 'YY-MM-DD HH24:MI:SS') AND TO_DATE('YY-MM-DD 00:00:00', 'YY-MM-DD HH24:MI:SS')
SQL> select * from test_table; ID START_DATE END_DATE ----- ---------- -------- 001 19-09-24 19-09-25 002 19-09-25 19-09-26 003 19-09-26 19-09-27 004 19-09-27 19-09-28 SQL> select * from test_table 2 where end_date 3 BETWEEN TO_DATE('19-09-25 00:00:00', 'YY-MM-DD HH24:MI:SS') 4 AND TO_DATE('19-09-27 00:00:00', 'YY-MM-DD HH24:MI:SS'); ID START_DATE END_DATE ----- ---------- -------- 001 19-09-24 19-09-25 002 19-09-25 19-09-26 003 19-09-26 19-09-27
コメント