--unpivot(新列名 for 聚合列名 in (值1 对应 新值1 ,......,值n 对应 新值n ))
unpivot函数的作用是将表数据列转成行,将指定的字段以行的形式展示。下面以表CJ为列:
select 学号,语文,数学,文科综合 from cj
结果:
现在将CJ表的语文、数学、文科综合字段的数据以列的方式展示,将语文、数学、文科综合字段重新聚合给新字段科目,并且给对应字段赋新值 1 2 3 。在将语文、数学、文科综合字段下的数据赋值给新字段分数
unpivot (分数 for 科目 in
( 语文 as '1' ,
数学 as '2' ,
文科综合 as '3' )
语句如下:
select 学号,科目,分数 from
(
select 学号,语文 ,数学,文科综合
from cj
)
unpivot (分数 for 科目 in
(语文 as '1' ,
数学 as '2' ,
文科综合 as '3'
)
)
结果: