[Oracle] 오라클 BETWEEN ~ AND 범위 검색 사용법 (날짜, 문자)

오라클에서 쿼리문을 작성하다 보면 가장 많이 사용하는 연산자 중 하나는 BETWEEN일 것이다. BETWEEN은 날짜, 숫자의 범위 검색에 아주 유용하게 사용할 수 있으며, 문자의 범위 검색도 가능하다.

 

아래의 BETWEET 연산자①와 비교 연산자(>=, <=)②는 동일한 결과가 검색되지만, 특수한 경우가 아니면 BETWEEN 연산자를 사용할 것을 권장 한다.

 

① 컬럼명 BETWEEN 시작일자 AND 종료일자 
② 컬럼명 >= 시작일자 AND 컬럼명 <= 종료일자

 

[ 날짜 범위 검색 ]

SELECT empno 
     , ename 
     , hiredate 
  FROM emp 
 WHERE hiredate BETWEEN TO_DATE('1981-01-01', 'YYYY-MM-DD') 
                   AND TO_DATE('1981-12-31', 'YYYY-MM-DD')      

 

[ 숫자 범위 검색 ]

SELECT empno 
     , ename 
     , hiredate 
  FROM emp 
 WHERE empno BETWEEN 7000 AND 7600​

예제쿼리(테이블포함).txt
0.02MB

   

BETWEEN ~ AND 사용예제

 

 

-  날짜 컬럼에 시간이 포함되어 있다면 종료일자에 0.99999 를 더하여 해당일자의 마지막 시간(1981-12-31 23:59:59)으로 변환 후 조회 한다.

 

[숫자 범위 검색

 

[ 문자 범위 검색 ]

-  문자형 컬럼에 숫자 값이 있을경우 값의 길이가 일정하다면 BETWEEN을 사용하여 조회 할 수 있다.

예시1: 10, 20, 30, 40, 50  /  예시2: 001, 002, 003 ... 010, 011  /  예시3: 1000, 1001, 1002, 2000, 2001

 

-  쿼리문 작성이 미숙할 때 문자형 컬럼에 BETWEEN을 사용할 경우 흔히 발생하는 실수 이다.

-  문자형 컬럼은 숫자형 처럼 연산되지 않고 "20"이 첫 문자에 포함된 값을 검색한다.

-  숫자형 문자일 경우 길이가 일정하지 않으면 TO_NUMBER로 형 변환 후 수치값으로 검색한다.

 

-  첫 문자에 'A', 'B', 'C'가 포함된 값이 조회 된다.

-  'AL'로 시작할 경우 'ADAMS'는 조회되지 않는다.

 

한글도 BETWEEN으로 검색이 가능하지만 사용방법이 조금 까다롭다. ( ㄱ ~ 힣 )

 

-  영문자와 다르게 한글은 종료문자("안")에 해당하는 값은 조회되지 않는다.

-  To에 해당하는 문자는 첫 문자 외에 뒤에 이어지는 문자도 검색에 영향을 미친다. "안영희"를 검색 되도록 하고 싶으면 "가" AND "안영희" 또는 "가" AND "안힣"으로 바꾸면 된다.

 

- 한글, 영문 모두 동일하다.  영문도 To 문자가 포함된 단어가 모두 조회 되도록 하고 싶으면 첫문자 + "Z"를 하면 된다. BETWEEN "A" AND "CZ"

 

 

댓글

Designed by JB FACTORY