A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周大俊 黑马帝   /  2011-11-2 16:01  /  1936 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有人用到过吗?如何实现,几种方式,通常在什么场合呢,3Q……

评分

参与人数 1技术分 +1 收起 理由
杨恩锋 + 1

查看全部评分

3 个回复

正序浏览
呵呵,这是个有意思的问题,
比如将下面表数据
Name         Course       Score
张三        语文        80
张三        数学        90
张三        英语        78
李四        数学        98
李四        英语        88
王五        数学        100
转换成 下面结构
姓名       数学      英语       语文
李四        98        88        NULL
王五        100        NULL        NULL
张三        90        78        80

下面的SQL是一种解法:
DECLARE @Sql VARCHAR(MAX)
SET @Sql = 'SELECT Name'
SELECT @Sql = @Sql + ',SUM(CASE Course WHEN ''' + Course + ''' THEN Score END) AS ' + Course
FROM 表名 GROUP BY Course
SET @Sql = @Sql + ' FROM 表名 GROUP BY Name'
EXEC(@Sql)
回复 使用道具 举报
同上,  求解.
回复 使用道具 举报
我也不知道,求回答。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马