Oracle 비교 연산자 IN

Oracle DB

예시2

emp테이블에서 데이터 형식이 date인 hiredate 컬럼의 데이터 중, IN문을 사용해 대상이 되는 데이터만을 취득하는 SQL문입니다. 검색 대상은 hiredate 값이 1980/12/17, 1981/12/03, 1982/01/23인 데이터입니다.

COLUMN empno FORMAT 99999;
COLUMN ename FORMAT A6;
COLUMN hiredate FORMAT A10;
alter session set nls_date_format = 'YYYY/MM/DD';
SELECT empno, ename, hiredate FROM emp WHERE hiredate IN ('1980/12/17', '1981/12/03', '1982/01/23');

※alter문으로 date 포맷을 변경하지 않았을 경우에는 TO_DATE를 이용해 포맷을 지정한 SQL문을 사용합니다.

SELECT empno, ename, hiredate FROM emp WHERE hiredate IN (TO_DATE('1980/12/17', 'YYYY/MM/DD'), TO_DATE('1981/12/03', 'YYYY/MM/DD'), TO_DATE('1982/01/23', 'YYYY/MM/DD'));

실행 결과는 다음과 같습니다. HIREDATE의 값이 1980/12/17, 1981/12/03, 1982/01/23인 데이터가 출력됩니다.

 EMPNO ENAME  HIREDATE
------ ------ ----------
  7369 SMITH  1980/12/17
  7900 JAMES  1981/12/03
  7902 FORD   1981/12/03
  7934 MILLER 1982/01/23

IN 대신 OR를 사용해 같은 결과를 취득할 수 있습니다.

COLUMN empno FORMAT 99999;
COLUMN ename FORMAT A6;
COLUMN hiredate FORMAT A10;
alter session set nls_date_format = 'YYYY/MM/DD';
SELECT empno, ename, hiredate FROM EMP WHERE hiredate = '1980/12/17' OR hiredate = '1981/12/03' OR hiredate = '1982/01/23';

※alter문으로 date 포맷을 변경하지 않았을 경우에는 TO_DATE를 이용해 포맷을 지정한 SQL문을 사용합니다.

SELECT empno, ename, hiredate FROM EMP WHERE hiredate = TO_DATE('1980/12/17', 'YYYY/MM/DD') OR hiredate = TO_DATE('1981/12/03', 'YYYY/MM/DD') OR hiredate = TO_DATE('1982/01/23', 'YYYY/MM/DD');
 EMPNO ENAME  HIREDATE
------ ------ ----------
  7369 SMITH  1980/12/17
  7900 JAMES  1981/12/03
  7902 FORD   1981/12/03
  7934 MILLER 1982/01/23

다음 페이지에 계속 …

제목과 URL을 복사했습니다