虽然转置单列非常简单,但我需要转置大量数据,其中需要转置 3 组、10 多个相关列。
create table test
(month int,year int,po1 int,po2 int,ro1 int,ro2 int,mo1 int,mo2 int, mo3 int);
insert into test
values
(5,2013,100,20,10,1,3,4,5),(4,2014,200,30,20,2,4,5,6),(6,2015,200,80,30,3,5,6,7) ;
select * FROM test;
Run Code Online (Sandbox Code Playgroud)
给出
| 月 | 年 | 波1 | 氧分压 | 罗1 | 罗2 | 莫1 | 钼 | 莫3 |
|---|---|---|---|---|---|---|---|---|
| 5 | 2013年 | 100 | 20 | 10 | 1 | 3 | 4 | 5 |
| 4 | 2014年 | 200 | 30 | 20 | 2 | 4 | 5 | 6 |
| 6 | 2015年 | 200 | 80 | 30 | 3 | 5 | 6 | 7 |
使用 UNPIVOT 转置
select
month, year,
PO, RO, MO
from ( SELECT * from test) …Run Code Online (Sandbox Code Playgroud)