행을 열로 표현하는 방법 문의 드립니다. 0 2 1,640

by 개발2년차 [SQL Query] [2015.11.18 17:59:19]


 

행을 표현되는 데이터를 열로 아래처럼 바꿔야 하는데, 검색을 해보아도 이해가 잘 되지 않아 문의드립니다.

아래처럼 LANG을 구분자로 코드명을 받는 테이블이 존재하는데 이를 한 ROW에 표현해야 합니다.

CODE LANG CODE_NAME
N001 KR 일반
N001 EN GENRAL
N001 CN
一般
N002 KR 변경
N002 EN ALTER
N002 CN
边境

CODE CODE_NAME_KR CODE_NAME_EN CODE_NAME_CN
N001 일반 GENRAL
一般
N002 변경 ALTER
边境

 

사용하는 오라클 환경이 10g라 PIVOT은 안되구요,
DECODE와 CASE문을 사용해도 원하는 대로 결과가 안나오더라구요.

힌트만이라도 부탁드립니다.

by 우리집아찌 [2015.11.18 18:28:46]
WITH T AS (
SELECT 'N001' CODE , 'KR' LANG, '일반' CODE_NAME FROM DUAL UNION ALL
SELECT 'N001' , 'EN' , 'GENRAL' FROM DUAL UNION ALL
SELECT 'N001' , 'CN' , '一般' FROM DUAL UNION ALL
SELECT 'N002' , 'KR' , '변경' FROM DUAL UNION ALL
SELECT 'N002' , 'EN' , 'ALTER' FROM DUAL UNION ALL
SELECT 'N002' , 'CN' , '边境' FROM DUAL 
)


SELECT CODE 
     , MAX(DECODE(LANG,'KR',CODE_NAME)) CODE_NAME_KR
     , MAX(DECODE(LANG,'EN',CODE_NAME)) CODE_NAME_EN
     , MAX(DECODE(LANG,'CN',CODE_NAME)) CODE_NAME_CN
  FROM T
GROUP BY CODE
ORDER BY CODE

 


by 개발2년차 [2015.11.18 18:55:16]

오오 기똥차네요 ..ㅠㅠ
감사합니다. 수련을 더 하도록 하겠습니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입