| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 830 人关注过本帖
标题:[求助]sql语句行列转换--普通
取消只看楼主 加入收藏
起步者
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-4-10
收藏
 问题点数:0 回复次数:4 
[求助]sql语句行列转换--普通

1. 行列转换--普通

假设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

想变成
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

如何实现????

下面的语句对吗????

declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)

搜索更多相关主题的帖子: sql 语句 行列 
2006-04-12 13:58
起步者
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-4-10
收藏
得分:0 
啊大哥!! 改了也不好使呀,又没有什么更好的办法呀??谢谢~~
2006-04-12 14:14
起步者
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-4-10
收藏
得分:0 
编辑出错!!

服务器: 消息 207,级别 16,状态 3,行 1
列名 '数学' 无效。
服务器: 消息 207,级别 16,状态 1,行 1
列名 '英语' 无效。
服务器: 消息 207,级别 16,状态 1,行 1
列名 '语文' 无效。
2006-04-12 14:26
起步者
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-4-10
收藏
得分:0 
OK 拉 大哥 呵呵 !~~谢谢

再问一下 ,在标前面 加上标识列还可以实现吗?
2006-04-12 14:35
起步者
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-4-10
收藏
得分:0 

不好意思,我把两个单引号当作一个双引号了,没想到SQl里是不支持双引号的
谢谢了~~~

2006-04-12 15:12
快速回复:[求助]sql语句行列转换--普通
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043228 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved