행위

"카테시안 프로덕트 튜닝 기법"의 두 판 사이의 차이

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 추천메뉴 바로가기


카테시안 프로덕트 튜닝 기법[편집]

  • 튜닝전
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