首页 > 数据库技术 > 详细

SqlServer行转列关键字——Pivot

时间:2021-07-07 16:16:29      阅读:26      评论:0      收藏:0      [点我收藏+]

有如下两表:

技术分享图片

技术分享图片

使用 pivot 进行“行列转换”,效果:

技术分享图片

脚本:

declare @sql varchar(1000)
declare @col varchar(1000)
select @col = ISNULL(@col + ,,‘‘) + QUOTENAME(r.Name) from dbo.[User] u inner join dbo.[Role] r on u.RoleID = r.ID group by r.Name --先确定要转换的列名
print @col
set @sql = 
select * from (
    select u.ID, r.Name, u.UserName from dbo.[User] u join dbo.[Role] r on u.RoleID = r.ID
) rg  pivot (max(UserName) for rg.Name in ( + @col + )) as pvt
print(@sql)
exec(@sql)

隐藏 ID 列,将 select * from 修改为 select ‘ + @col + ‘ from

SqlServer行转列关键字——Pivot

原文:https://www.cnblogs.com/seanyan/p/14981683.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!