sql 里面怎么把竖表变成横表

用SQL 如何转换?

SELECT 姓名
,'数学'=MAX(CASE 课程 WHEN '数学' THEN 分数 ELSE 0 END)
,'语文'=MAX(CASE 课程 WHEN '语文' THEN 分数 ELSE 0 END)
,'英语'=MAX(CASE 课程 WHEN '英语' THEN 分数 ELSE 0 END)
FROM TB
GROUP BY 姓名

--或者
SELECT 姓名,
,'数学'=SUM(CASE 课程 WHEN '数学' THEN 分数 ELSE 0 END)
,'语文'=SUM(CASE 课程 WHEN '语文' THEN 分数 ELSE 0 END)
,'英语'=SUM(CASE 课程 WHEN '英语' THEN 分数 ELSE 0 END)
FROM TB
GROUP BY 姓名
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-09
select 姓名,sum(case when 科目='数学' then 分数 end) as 数学,sum(case when 科目='语文' then 分数 end) as 语文,sum(case when 科目='英语' then 分数 end) as 英语 from 表名
group by 姓名
第2个回答  2018-08-10
hdp134793的博客中有详细介绍,希望给到大家帮助