今天有个同学要做行转列的问题,把实现过程记录一下
首先把同学要实现的原表晒出来,大家看下
这是同学要实现的效果,主要是一行转多行的效果,且转换前不知道有多少唯一行值该转为列
下面直接贴代码,仅供大家参考,如果有疑问请联系我qq,2625526306,有偿代写sql,原创,转载需备注,谢谢
- 知识点,pivot的用法,语法如下
- SELECT ,
[first pivoted column] AS ,
[second pivoted column] AS ,
…
[last pivoted column] AS
FROM
(<查询表或者子查询作为数据源>)
AS 表别名
PIVOT
(
<聚合函数>(<被聚合的列>)
FOR
[<待转换的列名称,此列的多个唯一值将被转换为列标题>]
IN ( [first pivoted column], [second pivoted column],
… [last pivoted column])
) AS <旋转表的别名>
<可选的排序子句 order by >;
可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。 PIVOT 轮换表值表达式,具体方法是将表达式某一