unpivot 列名转行值

先创建表

create table #a_aa_a(
t_id int,--基友ID
t_name varchar(10),--游戏人物
[20210401] int,--游戏时间
[20210402] int,
[20210403] int,
)
insert into #a_aa_a VALUES  (1,'盲僧',1,1,2)
insert into #a_aa_a VALUES  (2,'盲僧',2,2,1)
insert into #a_aa_a VALUES  (3,'盲僧',3,3,2)
insert into #a_aa_a VALUES  (1,'亚索',1,1,1)
insert into #a_aa_a VALUES  (2,'亚索',1,2,1)
insert into #a_aa_a VALUES  (3,'亚索',2,3,1)
insert into #a_aa_a VALUES  (1,'盖伦',3,1,3)
insert into #a_aa_a VALUES  (2,'盖伦',3,2,3)
insert into #a_aa_a VALUES  (3,'盖伦',3,3,3)

结果

 目的:将列对应的日期列名转换为对应的数据值

对应Sql:

select t_id,t_name,t_name_num,t_date from #a_aa_a -----数据源
unpivot 
--这里可以加列值,可不使用聚合函数,pivot必须使用聚合函数
( 
t_name_num --对应日期游戏次数
FOR t_date IN ([20210401],[20210402],[20210403])
) t--表ID

结果:

同理:横行变纵列---pivot行转列(行值转列名)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值