반응형

[Oracle SQL] SELECT 실습_ 범위연산자



I 범위연산자 : BETWEEN

▶ 숫자, 문자, 날짜



1. 숫자

1) BETWEEN ~ AND ~


SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL BETWEEN 0 AND 2000;





2) >, = 활용

QUERY 변형으로 위의 SQL문장을 아래의 SQL문장으로 바꿔서 명령문 전달(?)


SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL>=0 AND SAL<=2000;





3) 큰 숫자를 먼저 입력한 경우


SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL BETWEEN 2000 AND 0;





2. 문자

1) AND 


SELECT EMPNO,ENAME,SAL FROM EMP WHERE ENAME BETWEEN 'A' AND 'D';





2) >, = 활용


SELECT EMPNO,ENAME,SAL FROM EMP WHERE ENAME>='A' AND ENAME<='D';





3. 날짜 


SELECT EMPNO,ENAME,HIREDATE,SAL FROM EMP WHERE HIREDATE BETWEEN '81/01/01' AND '82/12/19';





4. 'YY v. RR'

▶ TO_DATE : 'YY' 


SELECT EMPNO,ENAME,HIREDATE,SAL

FROM EMP

WHERE HIREDATE BETWEEN TO_DATE('81/01/01', 'YY/MM/DD') AND TO_DATE('82/12/19', 'YY/MM/DD');





▶ TO_DATE : 'YYYY' 


SELECT EMPNO,ENAME,HIREDATE,SAL

FROM EMP

WHERE HIREDATE BETWEEN TO_DATE('1981/01/01','YYYY/MM/DD/') AND TO_DATE('1982/12/19','YYYY/MM/DD');





▶ TO_DATE : 'RR


SELECT EMPNO,ENAME,HIREDATE,SAL

FROM EMP

WHERE HIREDATE BETWEEN TO_DATE('81/01/01', 'RR/MM/DD') AND TO_DATE('82/12/19', 'RR/MM/DD');





 YY v. RR

1) YY 

입력 년도를 오라클 서버의 현재 날짜와 동시대로 계산

            ex. YY 형식에서 '19'를 입력한다면 2019년으로, '55'을 입력한다면 2055년으로, '81'을 입력한다면 2081년으로 인식


2) RR 

 

현재 년도(뒤의 두 자리)

 입력하는 년도(뒤의 두 자리)

 결  과

 

 00 ~ 49

 00 ~ 49

 현재 세기

 

 00 ~ 49

 50 ~ 99

 이전 세기

 

 50 ~ 99

 00 ~ 49

 다음 세기

 

 50 ~ 99

 50 ~ 99

 현재 세기

     

             현재는 2019년이기 때문에 현재 년도의 뒤의 두 자리는 00~49 사이에 있다. 

             이 때 내가 '81'을 입력한다면 입력하는 년도의 두의 두 자리는 50~99에 해당한다. 

             표에 따르면 현재 년도가 00~49, 입력 년도가 50~99일 경우 전 세기로 계산한다

             즉 1900년대로 계산하여 오라클은 81을 1981년으로 인식하는 것이다.

반응형