Database/SQL

Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용

리커니 2019. 8. 30. 10:01
반응형

Oracle 오라클 행열 변환, 카테시안 조인, CASE문 활용

 

카테시안 조인과 CASE문을 활용하여 행열을 변환하는 방법을 알아보도록 하겠습니다.

카테시안 조인과 CASE문에 대해서는 아래의 Link를 참고하세요.

Link : Oracle 오라클 데이터 복제 방법, 카테시안 조인

 

Oracle 오라클 데이터 복제 방법, 카테시안 조인

Oracle 오라클 데이터 복제 방법, 카테시안 조인 이번 포스팅에서는 원하는 만큼 데이터를 복사해 SELECT 하는 방법에 대해서 포스팅 하겠습니다. 데이터의 복제는 카테시안 조인을 사용하여 간단히 할 수 있습니..

aljjabaegi.tistory.com

 

Link : Oracle 오라클 CASE문 사용법 CASE WHEN THEN END

 

Oracle 오라클 CASE문 사용법 CASE WHEN THEN END

ORACLE 오라클 CASE문 사용법 CASE WHEN THEN END * CASE 문의 사용법 CASE문은 여타 다른 프로그래밍 언어들과 같이 조건이나 값에 해당하는 결과값을 RETURN하는데 사용한다. CASE문에는 사용법은 같지만 조건이..

aljjabaegi.tistory.com

 

우선 아래와 같은 두 행이 있습니다.

 

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 문을 활용하여 원하는 데이터만 표출하는 방식입니다.

반응형