[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년으로 인식하는 것이다.
'ORACLE SQL > 01_SELECT 실습' 카테고리의 다른 글
[Oracle SQL] SELECT 실습_ 함수 (0) | 2019.01.01 |
---|---|
[Oracle SQL] SELECT 실습_ 리스트 연산자 (0) | 2019.01.01 |
[Oracle SQL] SELECT 실습_ 논리연산자 (0) | 2019.01.01 |
[Oracle SQL] SELECT 실습_ ROWNUM (0) | 2018.12.31 |
[Oracle SQL] SELECT 실습_ DECODE, CASE (0) | 2018.12.31 |