반응형
IN 조건 - expr1 [NOT] IN (expr2 [, expr2])
expr1이 expr2의 목록에 포함되는 행을 반환
SELECT ename, job FROM emp WHERE job = 'ANALYST' OR job = 'MANAGER';
위의 쿼리와 논리적으로 동일하며, IN 조건은 OR과 동일하다.
SELECT ename, job FROM emp WHERE NOT (job IN ('ANALYST', 'MANAGER'));
SELECT ename, job FROM emp WHERE NOT (job = 'ANALYST' OR job = 'MANAGER');
SELECT ename, job FROM emp WHERE (job <> 'ANALYST' AND job <> 'MANAGER');
해당 쿼리는 위의 쿼리와 동일하다.
NOT IN 조건은 expr이 NULL이면 반환되는 행이 없음.
SELECT ename, mgr FROM emp WHERE NOT (mgr IN (7839, NULL));
SELECT ename, mgr FROM emp WHERE NOT (mgr = 7839 OR mgr = NULL);
SELECT ename, mgr FROM emp WHERE (mgr <> 7839 AND mgr <> NULL);
해당 쿼리와 동일하다.
IN 조건은 NULL이 입력되어도 행 반환.
SELECT ename, mgr FROM emp WHERE mgr = 7893 OR mgr = NULL;
해당 쿼리와 동일하다.
SELECT * FROM emp WHERE deptno IN (1, ...1001); -- 최대 1000개
SELECT * FROM emp WHERE (1, deptno) IN ((1, 1) ... (1, 1001); -- 1000개 이상 가능
----(첫번째 1은 항상 같은값으로 무시됨)
※ IN 조건은 목록을 100개까지만 지정할 수 있으며, 다중 열 이용시 1000개 이상 목록 지정가능.
반응형
'Develop > DATABASE' 카테고리의 다른 글
오라클)WHERE 절 - NULL, LNVVL (0) | 2022.10.10 |
---|---|
오라클)WHERE 절 - LIKE (0) | 2022.10.10 |
오라클)WHERE 절 - BETWEEN(범위 조건) (1) | 2022.10.04 |
오라클)WHERE 절 - 논리 조건 (0) | 2022.10.04 |
오라클)WHERE 절 - 비교 조건 (0) | 2022.10.03 |
댓글