행을 표현되는 데이터를 열로 아래처럼 바꿔야 하는데, 검색을 해보아도 이해가 잘 되지 않아 문의드립니다.
아래처럼 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문을 사용해도 원하는 대로 결과가 안나오더라구요.
힌트만이라도 부탁드립니다.
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