黑马程序员技术交流社区
标题:
SQL中如何进行行转列
[打印本页]
作者:
周大俊
时间:
2011-11-2 16:01
标题:
SQL中如何进行行转列
有人用到过吗?如何实现,几种方式,通常在什么场合呢,3Q……
作者:
黄威
时间:
2011-11-2 16:16
我也不知道,求回答。
作者:
陈涛
时间:
2011-11-2 16:36
同上, 求解.
作者:
DotNet菜鸟
时间:
2011-11-3 18:40
呵呵,这是个有意思的问题,
比如将下面表数据
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)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2