Database/SQL
Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용
리커니
2019. 8. 30. 10:01
반응형
Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용
카테시안 조인과 CASE문을 활용하여 행열을 변환하는 방법을 알아보도록 하겠습니다.
카테시안 조인과 CASE문에 대해서는 아래의 Link를 참고하세요.
Link : Oracle 오라클 데이터 복제 방법, 카테시안 조인
Link : Oracle 오라클 CASE문 사용법 CASE WHEN THEN END
우선 아래와 같은 두 행이 있습니다.
SELECT '이름'
, '나이'
, '직업'
, '홈페이지'
FROM SYS.DUAL;
SELECT '이건'
, '35'
, '개발자'
, 'http://aljjabaegi.tistory.com'
FROM SYS.DUAL;
각 쿼리의 결과는 아래와 같겠죠?
이 2행을 카테시안 조인과 CASE문을 활용하여 2열로 변경하는 방법을 알아보겠습니다.
결과부터 보시죠.
SELECT CASE T3.LVL
WHEN 1 THEN T1.NM
WHEN 2 THEN T1.AGE
WHEN 3 THEN T1.WORKS
WHEN 4 THEN T1.HOMEPAGE END AS TITLE
, CASE T3.LVL
WHEN 1 THEN T2.NM
WHEN 2 THEN T2.AGE
WHEN 3 THEN T2.WORKS
WHEN 4 THEN T2.HOMEPAGE END AS VALUE
FROM
(SELECT '이름' AS NM
, '나이' AS AGE
, '직업' AS WORKS
, '홈페이지' AS HOMEPAGE
FROM SYS.DUAL) T1,
(SELECT '이건' AS NM
, '35' AS AGE
, '개발자' AS WORKS
, 'http://aljjabaegi.tistory.com' AS HOMEPAGE
FROM SYS.DUAL) T2,
(SELECT LEVEL AS LVL
FROM SYS.DUAL
CONNECT BY LEVEL <= 4) T3
카테시안 조인을 활용하여 LEVEL 수 만큼 행을 복사하고
복사한 데이터를 기준으로 CASE 문을 활용하여 원하는 데이터만 표출하는 방식입니다.
반응형