Database/MySQL
MySQL 가로데이터를 세로데이터로 전환하기
셋부터넷
2020. 10. 23. 15:20
어느날 아래와 같은 구조를 가진 테이블을
idx |
area1 |
area2 |
area3 |
area4 |
area5 |
1 |
10 |
20 |
30 |
40 |
50 |
2 |
11 |
21 |
31 |
41 |
51 |
아래와 같이 변경 해야 하는 경우가 닥치고 말았다
no |
position |
value |
1 |
area1 |
10 |
1 |
area2 |
20 |
1 |
area3 |
30 |
1 |
area4 |
40 |
1 |
area5 |
50 |
2 |
area1 |
11 |
2 |
area2 |
21 |
2 |
area3 |
31 |
2 |
area4 |
41 |
2 |
area5 |
51 |
해결책 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
SELECT
`no`,
CASE
WHEN x=1 THEN 'area1'
WHEN x=2 THEN 'area2'
WHEN x=3 THEN 'area3'
WHEN x=4 THEN 'area4'
WHEN x=5 THEN 'area5'
END `position`,
CASE
WHEN x=1 THEN area1
WHEN x=2 THEN area2
WHEN x=3 THEN area3
WHEN x=4 THEN area4
WHEN x=5 THEN area5
END `value
FROM (
select * from default_data a,
(
select 1 AS x
union all select 2 AS x
union all select 3 AS x
union all select 4 AS x
union all select 5 AS x
) b
)
ORDER BY `NO`, `NUMBERS` ASC;
|
cs |
[출처] Mysql 가로 컬럼 형태를 세로 rows 형태 로 변경|작성자 RS