博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver行转列
阅读量:4560 次
发布时间:2019-06-08

本文共 1911 字,大约阅读时间需要 6 分钟。

一丶行专列案例【】

1.建立表格

IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tbgoCREATE TABLE tb(姓名 VARCHAR(10),课程 VARCHAR(10),分数 INT)insert into tb VALUES ('张三','语文',74)insert into tb VALUES ('张三','数学',83)insert into tb VALUES ('张三','物理',93)insert into tb VALUES ('李四','语文',74)insert into tb VALUES ('李四','数学',84)insert into tb VALUES ('李四','物理',94)goSELECT * FROM tbgo

动态sql

--使用stuff()DECLARE @sql VARCHAR(8000)SET @sql=''  --初始化变量 @sqlSELECT @sql= @sql+',' + 课程 FROM tb GROUP BY 课程 --变量多值赋值SET @sql= STUFF(@sql,1,1,'')--去掉首个','SET @sql='select * from tb pivot (max(分数) for 课程 in ('+@sql+'))a'PRINT @sqlexec(@sql)--或使用isnull()DECLARE @sql VARCHAR(8000)--获得课程集合SELECT @sql= ISNULL(@sql+',','')+课程 FROM tbGROUP BY 课程           SET @sql='select * from tb pivot (max(分数) for 课程 in ('+@sql+'))a'exec(@sql)

二丶实战

行转列

 

DECLARE @sql VARCHAR(8000)SET @sql=''  --初始化变量 @sqlSELECT @sql= @sql+',' + '['+Admission_Grade+']' FROM #temp WHERE Admission_Grade>YEAR(GETDATE())-3 GROUP BY Admission_Grade ORDER BY Admission_Grade DESC--变量多值赋值SET @sql= STUFF(@sql,1,1,'')--去掉首个','SET @sql='select * from #temp pivot (max(studentCount) for Admission_Grade in ('+@sql+'))a'PRINT @sqlexec(@sql)

2.

DECLARE @sql VARCHAR(8000)SET @sql=''  --初始化变量 @sqlSELECT @sql= @sql+',' + '['+Admission_Grade+']' FROM #temp WHERE Admission_Grade>YEAR(GETDATE())-3 GROUP BY Admission_Grade ORDER BY Admission_Grade DESC--变量多值赋值SET @sql= STUFF(@sql,1,1,'')--去掉首个','SET @sql = ' select m.* , n.stuCount from(select  * from (select * from #temp) a pivot (max(studentCount) for Admission_Grade in (' + @sql    + ')) b) m,(select Magor_Code,StudyMode,StudyHierarchy,sum(studentCount) as stuCount from #temp WHERE  Admission_Grade>YEAR(GETDATE())-3  group by Magor_Code,StudyMode,StudyHierarchy) nwhere m.Magor_Code= n.Magor_Code AND m.StudyMode=n.StudyMode AND m.StudyHierarchy=n.StudyHierarchy'PRINT @sqlexec(@sql)

 

转载于:https://www.cnblogs.com/chenze-Index/p/10454742.html

你可能感兴趣的文章
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 对外不要提供Delete方法加强软件的安全性...
查看>>
MySql存储过程
查看>>
bash: /bin/bash^M: bad interpreter: No such file or directory
查看>>
SPI
查看>>
发布功能完成。
查看>>
跟着Alex老师学习抄了一遍shopping_list的购物程序
查看>>
Storm Topology 提交 总结---Kettle On Storm 实现
查看>>
自定义栈的实现及使用两个栈模拟队列
查看>>
.NET EntityFrameworkCore.DbUpdateException 错误
查看>>
【转】LINUX 5 常用ftp telnet配置
查看>>
[Leetcode] Same Tree
查看>>
UVa 1252 - Twenty Questions(状压DP)
查看>>
Elevatorhdu-1008
查看>>
采用ADO.NET存取Excel数据(Use ADO.NET to Retrieve and Modify Records in an Excel Workbook)
查看>>
Shared Source Common Language Infrastructure 2.0 Release!
查看>>
使用PHP获取用户客户端真实IP的解决方案
查看>>
jQuery实现页内查找相关内容
查看>>
ol3开发离线地图
查看>>
[BZOJ2160]拉拉队排练
查看>>
三、css 和 js 的装载与执行
查看>>