"카테시안 프로덕트 튜닝 기법"의 두 판 사이의 차이
DB CAFE
(→카테시안 프로덕트 튜닝 기법) |
|||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
12번째 줄: | 12번째 줄: | ||
WHERE DEPT_NO IN ( 10 , 20 ) | WHERE DEPT_NO IN ( 10 , 20 ) | ||
</source> | </source> | ||
+ | |||
* 카테시안 프로덕트로 변경 | * 카테시안 프로덕트로 변경 | ||
24번째 줄: | 25번째 줄: | ||
, CASE WHEN RCNT = 2 THEN 'BBB' ELSE 'AAA' END | , CASE WHEN RCNT = 2 THEN 'BBB' ELSE 'AAA' END | ||
</source> | </source> | ||
+ | [[category:oracle]] |
2023년 8월 17일 (목) 01:09 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
카테시안 프로덕트 튜닝 기법[편집]
- 튜닝전
SELECT 'AAA' GBN
, EMP_ID,EMP_NAME
FROM EMP
WHERE DEPT_NO = 10
UNION ALL
SELECT 'BBB' GBN
, EMP_ID,EMP_NAME
FROM EMP
WHERE DEPT_NO IN ( 10 , 20 )
- 카테시안 프로덕트로 변경
SELECT CASE WHEN RCNT =2 THEN 'BBB' ELSE 'AAA' END GBN
, EMP_ID,EMP_NAME
FROM EMP
, (SELECT ROWNUM RCNT FROM DUAL CONNECT BY LEVEL <= 2) -- 카테시안
WHERE DEPT_NO IN ( 10 , 20 )
AND RCNT <= CASE WHEN A.DEPT_NO = 10 THEN 2 ELSE 1 END -- 분기 조건
GROUP BY EMP_ID,EMP_NAME
, CASE WHEN RCNT = 2 THEN 'BBB' ELSE 'AAA' END