多列的行列转换(PIVOT,UNPIVOT)

本文详细介绍了数据库中多列数据进行行列转换的方法,包括使用PIVOT进行列转行和UNPIVOT进行行转列的操作。通过实例解析,帮助读者理解这两种转换在数据分析和报表生成中的应用。
摘要由CSDN通过智能技术生成
形式1
形式2
形式3
  有时候可能会有这样的需求: 将一张表的所有列名转做为数据的一列数据,将一列数据作为整张表的列名
当列比较多时,只用PIVOT是解决不了的,经过研究,需要将UNPIVOT 和 PIVOT 联合使用
  如上面的3个图,我们最终需要把形式1转换为形式3. 然而单用PIvot 解决不了问题,需要分两步转换
第一步:先通过UNPIVOT将所有列转换到数据中的一列,如形式2
第二步:通过PIVOT将另外一列数据作为列名
这样就实现了将源表的某列数据与列名互换.
 
 1 SELECT [Week] AS [Date],[Total] AS WeeklyTotal
 2     ,[Monday] 
 3     ,[Tuesday]
 4     ,[Wednesday]
 5     ,[Thursday]
 6     ,[Friday]
 7     ,[Saturday]
 8     ,[Sunday]
 9     FROM 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值