脚本:
/* 说明:sql server如何通过pivot对数据进行行列转换(进阶),用于员工业绩按月龙虎排行榜、客户销售金额按月排行榜等 脚本来源:https://www.cnblogs.com/zhang502219048/p/13173228.html 作者:zhang502219048 作者微信公众号:SQL数据库编程(微信号zhang502219048) */ declare @n int = 2 create table #t1 ( [月份] nvarchar(50), [业务员] nvarchar(50), [金额] int ) insert into #t1 values(N'2020-01', N'业务员1', N'100') , (N'2020-01', N'业务员2', N'200') , (N'2020-02', N'业务员2', N'300') , (N'2020-02', N'业务员3', N'400') , (N'2020-03', N'业务员4', N'500') , (N'2020-03', N'业务员5', N'600') , (N'2020-04', N'业务员1', N'700') , (N'2020-04', N'业务员3', N'800') --select * from #t1 select [行序号] = row_number() over(partition by [月份] order by [金额] desc) , * into #t2 from #t1 --select * from #t2 create table #t3 ( [列序号] int, [行序号] int, [月份] nvarchar(50), [结果] nvarchar(50), [类型] nvarchar(50) ) insert into #t3 select [列序号] = 1, [行序号], [月份], [结果] = [业务员], [类型] = [月份] + N'-业务员' from #t2 insert into #t3 select [列序号] = 2, [行序号], [月份], [结果] = [金额], [类型] = [月份] + N'-金额' from #t2 --select * from #t3 declare @sqlIn nvarchar(max) = '' select @sqlIn = @sqlIn + case when @sqlIn <> '' then ',' else '' end + '[' + [类型] + ']' from (select distinct [列序号], [月份], [类型] from #t3) a order by [月份], [列序号] --select @sqlIn --行列转换后的目标数据 declare @sql nvarchar(max) = ' select top ' + cast(@n as nvarchar(10)) + @sqlIn + ' from (select [行序号], [结果], [类型] from #t3) D pivot(max([结果]) for [类型] in (' + @sqlIn + ')) Q order by [行序号] ' exec(@sql) drop table #t1, #t2, #t3
脚本运行结果:
【转载请注明博文来源:https://www.cnblogs.com/zhang502219048/p/13173228.html】
分类:
sql server
标签:
sql server
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
2019-06-21 sql server编写一个语句脚本自动清空各表数据以初始化数据库
2019-06-21 sql server通过脚本进行数据库压缩全备份的方法