- OR 조건을 UNION ALL로 변경 시에 중복 값을 제거 하기
-
* OR 조건을 UNION ALL로 변경 시에 중복 값을 제거(LNNVL 함수 사용)
SELECT /*+ QB_NAME(MAIN) USE_CONCAT */
e.empno , e.ename , d.dname
FROM emp e , dept d
WHERE e.deptno = d.deptno
AND (d.deptno IN (10,20) OR e.mgr IN ( 7839 , 7698 )) ;
==>
SELECT /*+ QB_NAME(MAIN1) */
e.empno , e.ename , d.dname
FROM emp e , dept d
WHERE e.deptno = d.deptno
AND e.mgr IN ( 7839 , 7698 )
UNION ALL
SELECT /*+ QB_NAME(MAIN2) */
e.empno , e.ename , d.dname
FROM emp e , dept d
WHERE e.deptno = d.deptno
AND d.deptno IN (10,20)
AND (lnnvl(e.mgr = 7839) AND lnnvl(e.mgr = 7698 )) ;
'ORACLE > SQL' 카테고리의 다른 글
BULK COLLECT (0) | 2017.08.17 |
---|---|
오라클 정규식 사용 팁 (0) | 2017.07.07 |
DML 수행 시 내부 절차 (0) | 2017.06.20 |
관리를 위한 쿼리 모음 (0) | 2017.06.16 |
Oracle 스크립트 모음 (0) | 2017.06.16 |