쿼리 질문있습니다!! 0 1 791

by 치비 [Oracle 기초] [2017.04.26 21:39:31]


안녕하세요 오라클 공부하던중 궁금한게 있어서 질문드립니다.

등급 이름
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  

 

 

 

by 마농 [2017.04.27 07:29:18]
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))
;

 

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