안녕하세요 오라클 공부하던중 궁금한게 있어서 질문드립니다.
등급 | 이름 |
S | 철수1 |
S | 은미1 |
A | 철수2 |
A | 은미2 |
B | 철수3 |
B | 은미3 |
C | 철수4 |
C | 은미4 |
E | 은미5 |
위와 같이 등급별 이름을 저장한 테이블이 있습니다.
예를 들어서 select 이름 from 테이블 where 등급 = 'S' 라고 하면 S등급을 받은 이름을 알 수 있습니다.
아래와 같이 표로 나타 낼려면 어떡해 해야하는지 궁금합니다. 간단한 키워드만 주셔도 공부해서 알아볼테니
도와주세요^^
S등급 | A등급 | B등급 | C등급 | E등급 |
철수1 | 철수2 | 철수3 | 철수4 | 은미1 |
은미1 | 은미2 | 은미3 | 은미4 |
WITH t AS ( SELECT 'S' grd, '철수1' nm FROM dual UNION ALL SELECT 'S', '은미1' FROM dual UNION ALL SELECT 'A', '철수2' FROM dual UNION ALL SELECT 'A', '은미2' FROM dual UNION ALL SELECT 'B', '철수3' FROM dual UNION ALL SELECT 'B', '은미3' FROM dual UNION ALL SELECT 'C', '철수4' FROM dual UNION ALL SELECT 'C', '은미4' FROM dual UNION ALL SELECT 'E', '은미5' FROM dual ) SELECT * FROM (SELECT grd, nm , ROW_NUMBER() OVER(PARTITION BY grd ORDER BY nm) rn FROM t ) PIVOT (MIN(nm) FOR grd IN ('S' s, 'A' a, 'B' b, 'C' c, 'E' e)) ;