SQL中行列轉換的例子
来源:互联网 发布:ug8.5软件下载 编辑:程序博客网 时间:2024/04/30 05:15
普通行列轉換
假設有張學生成績表(t)如下
Name Subject Result
張三 語文 73
張三 數學 83
張三 物理 93
李四 語文 74
李四 數學 84
李四 物理 94
想變成
姓名 語文 數學 物理
張三 73 83 93
李四 74 84 94
create table #t
(
Name varchar(10) ,
Subject varchar(10) ,
Result int
)
insert into #t(Name , Subject , Result) values('張三','語文','73')
insert into #t(Name , Subject , Result) values('張三','數學','83')
insert into #t(Name , Subject , Result) values('張三','物理','93')
insert into #t(Name , Subject , Result) values('李四','語文','74')
insert into #t(Name , Subject , Result) values('李四','數學','83')
insert into #t(Name , Subject , Result) values('李四','物理','93')
declare @sql varchar(8000)
set @sql = 'select Name as ' + '姓名'
select @sql = @sql + ' , sum(case Subject when ''' + Subject + ''' then Result end) [' + Subject + ']'
from (select distinct Subject from #t) as a
set @sql = @sql + ' from #t group by name'
exec(@sql)
drop table #t
--結果
姓名 數學 物理 語文
---------- ----------- ----------- -----------
李四 83 93 74
張三 83 93 73
例2:
/*行列轉換*/
declare @sql varchar(8000)
set @sql = 'select Hg01,Hg03'
select @sql = @sql + ' , sum(case Hg02 when ''' + Hg02 + ''' then Hg04 end) [' + Hg02 + ']'
from (select distinct Hg02 from khm07) as a
set @sql = @sql + ' from khm07 group by Hg01,Hg03 order by Hg01,Hg03'
exec(@sql)
print @sql
--select Hg01,Hg03,Hg02,Hg04 from khm07 where Hg01='A' and Hg03='acdc'
- SQL中行列轉換的例子
- SQL中行转列的问题!
- MySQL中行列转换的SQL技巧
- SQL Server 数据库中行变列的SQL语句写法
- sql表中行复制
- sql中行列转换
- sql中行列互换
- SQL中行为不当的子查询,IN,exists
- SQLServer中行列转换SQL
- SQL Server中行列转换
- sql中行列互换问题
- SQL Server中行列转换
- SQL Server中行列转换
- UITableView中行的操作
- UITableView中行的操作
- UITableView 中行的操作
- Sql Server函数大全(二)---SQL Server 2005 中行列转换(Pivot 和 UNPivot的使用)
- SQL Server 2005 中行列转换(Pivot 和 UNPivot的使用)
- 清空所有缓存
- 生命的贵人
- 银行家算法
- 手把手教你用CAB发布OCX的简单办法
- Android 音乐频谱实现
- SQL中行列轉換的例子
- Android平台——Surfaceflinger机制
- SQL中得ALTER和update不同
- 杀毒
- VC++ 6.0点击打开文件按钮出错解决办法
- 我的空间第一篇日志,关于PKU 1002号题目的
- 时间Date.ToString()参数详解
- Bada学习-(十八)事件注入器(触发器)
- 笔记:解决eclipse中android添加重载函数时参数为arg0,arg1的方法---兼谈Window下载android SDK