SQL列转行
来源:互联网 发布:网络语红烧肉什么意思 编辑:程序博客网 时间:2024/06/05 21:02
SQL列转行
生成
sql代码
生成静态:select *from (select sname,[Course ] ='数学',[Score]=[数学] from Tb_students union allselect sname,[Course]='英语',[Score]=[英语] from Tb_students union allselect sname,[Course]='语文',[Score]=[语文] from Tb_students)torder by sname,case [Course] when '语文' then 1 when '数学' then 2 when '英语' then 3 endgo --列转行的静态方案:UNPIVOT,sql2005及以后版本 SELECT sname,Subject, grade from dbo.Tb_students unpivot(grade for Subject in([语文],[数学],[英语]))as up GO --列转行的动态方案:UNPIVOT,sql2005及以后版本 --因为行是动态所以这里就从INFORMATION_SCHEMA.COLUMNS视图中获取列来构造行,同样也使用了XML处理。 declare @s nvarchar(4000)select @s=isnull(@s+',','')+quotename(Name)from syscolumns where ID=object_id('Tb_students') and Name not in('sname')order by Colidexec('select sname,[Subject],[grade] from Tb_students unpivot ([grade] for [Subject] in('+@s+'))b')goselect sname,[Subject],[grade]from Tb_studentsunpivot ([grade] for [Subject] in([数学],[英语],[语文]))b
0 0
- sql列转行
- sql列转行
- 列转行SQL
- sql列转行
- sql列转行
- SQL 列转行
- SQL行转列 列转行
- sql 列转行
- SQL行转列,列转行
- sql 列转行
- sql 列转行
- SQL 列转行
- SQL列转行
- 列转行sql
- SQL 列转行
- SQL 列转行/行转列
- SQL 列转行
- sql server 列转行
- Android ADB命令发送广播
- hdu1075 What Are You Talking About
- XPCOM 指南结构
- stunserver 的几个公网地址及其问题
- 剑指offer 面试题50—树中两个节点的最低公共祖先
- SQL列转行
- POJ 1149 PIGS(网络流)
- 距离矢量路由算法
- XPCOM指南-1_XPCOM概述
- 刷票大战(一)——突破IP限制
- 工作日志
- 习题3—38
- linux下devicetree中常用的of函数
- css实现三角形