[sql server] 行转列问题总结 - 2、列转行
来源:互联网 发布:好的英语软件 编辑:程序博客网 时间:2024/05/01 14:40
if not object_id('Class') is null
drop table Class
Go
Create table Class([Student] nvarchar(2),[数学] int,[物理] int,[英语] int,[语文] int)
Insert Class
select N'李四',77,85,65,65 union all
select N'张三',87,90,82,78
Go
--2000:
动态:
declare @s nvarchar(4000)
select @s=isnull(@s+' union all ','')+'select [Student],[Course]='+quotename(Name,'''')--isnull(@s+' union all ','') 去掉字符串@s中第一个union all
+',[Score]='+quotename(Name)+' from Class'
from syscolumns where ID=object_id('Class') and Name not in('Student')--排除不转换的列
order by Colid
exec('select * from ('+@s+')t order by [Student],[Course]')--增加一个排序
生成静态:
select *
from (select [Student],[Course]='数学',[Score]=[数学] from Class union all
select [Student],[Course]='物理',[Score]=[物理] from Class union all
select [Student],[Course]='英语',[Score]=[英语] from Class union all
select [Student],[Course]='语文',[Score]=[语文] from Class)t
order by [Student],[Course]
go
--2005:
动态:
declare @s nvarchar(4000)
select @s=isnull(@s+',','')+quotename(Name)
from syscolumns where ID=object_id('Class') and Name not in('Student')
order by Colid
exec('select Student,[Course],[Score] from Class unpivot ([Score] for [Course] in('+@s+'))b')
go
select
Student,[Course],[Score]
from
Class
unpivot
([Score] for [Course] in([数学],[物理],[英语],[语文]))b
生成格式:
/*
Student Course Score
------- ------- -----------
李四 数学 77
李四 物理 85
李四 英语 65
李四 语文 65
张三 数学 87
张三 物理 90
张三 英语 82
张三 语文 78
(8 行受影响)
*/
- [sql server] 行转列问题总结 - 2、列转行
- sql server 列转行
- sql server 列转行
- SQL Server 列转行
- SQL SERVER 2000/2005 列转行 行转列
- SQL SERVER 2000/2005 列转行 行转列
- SQL Server 实现 行转列、列转行
- Sql SerVer 查询行转列、列转行
- SQL 列转行问题
- SQL Server 2005 列转行
- SQL行转列 列转行
- SQL行转列,列转行
- SQL 列转行/行转列
- SQL行转列,列转行
- SQL行转列,列转行
- SQL行转列、列转行
- sql行转列,列转行
- SQL 行转列 列转行
- C#中IComparer的使用
- 简单URL的重写
- 架构师书单
- WIN 7桌面及快捷方式无法打开的解决办法
- 使用代理服务器与路由器(NAT主机)上网的区别
- [sql server] 行转列问题总结 - 2、列转行
- 整型与字符型的相互转换(C、C++)(转载)
- 行转列问题总结 - 3、行列互转
- 启明应用基础平台发布
- SQL Server2000安装故障排除
- 六月卷 专心致志
- 如何利用缓存提高asp.net网站访问速度
- 来自Eizo,有点yellow的广告
- Shell 排序