쿼리 결과를 세로가 아닌 가로로 출력하기. => CASE 문 이용

 

 

 

1. 문자데이터 가로로 출력하기 : MAX

<<테이블에서 각 포지션별로 메인에 공개된 파일명만 추출할 때>>

 

일반 조회 시 :

SELECT * FROM tbl_temp;

 sequence  filename  position  mainyn  language
 1  img_1.jpg  O  Y   KR
 2  img_2.jpg  R  Y  KR
 3  img_3.jpg  B  Y  KR
 4  img_4.jpg  L  Y  KR
 5  img_5.jpg  T  Y  KR

 

 

가로 출력 시 :

SELECT 
MAX(CASE WHEN position='O' AND mainyn='Y' then filename else '' end) as O_file,
MAX(CASE WHEN position='R' AND mainyn='Y' then filename else '' end) as R_file,
MAX(CASE WHEN position='B' AND mainyn='Y' then filename else '' end) as B_file,
MAX(CASE WHEN position='L' AND mainyn='Y' then filename else '' end) as L_file,
MAX(CASE WHEN position='T' AND mainyn='Y' then filename else '' end) as T_file
FROM tbl_temp;

 O_file  R_file  B_file  L_file  T_file
 img_1.jpg  img_2.jpg  img_3.jpg  img_4.jpg  img_5.jpg

 

 

 

2. 수치데이터 가로로 출력하기 : SUM

 

<<테이블에서 서비스별로 조회수(hits)를 추출할 때>>

 

일반 조회 시 :

SELECT * FROM tbl_temp;

 service  hits
 music  3
 movie  4
 music  1
 music  4
 book  2
 movie  2
 game  3

 

가로 출력 시 :

SELECT 
SUM(CASE WHEN service='music' then hits else 0 end) as music_hits,
SUM(CASE WHEN service='movie' then hits else 0 end) as movie_hits,
SUM(CASE WHEN service='book' then hits else 0 end) as book_hits,
SUM(CASE WHEN service='game' then hits else 0 end) as game_hits
FROM tbl_temp;

 music_hits  movie_hits  book_hits  game_hits
 8  6  2  3

 
[ 출처 : http://blog.naver.com/hello80?Redirect=Log&logNo=130071086094 ]  

'DataBase > Sql' 카테고리의 다른 글

[Sql] 행을 열로 표시  (0) 2012.04.25
[Sql] NoSql  (0) 2012.01.04
[Sql] Analytic Function  (0) 2011.10.20
[Sql] 지운데이터 복구  (0) 2011.10.14
[Sql] Oracle - sql정리_요약  (0) 2011.08.11

+ Recent posts