横纵表互转
select n.name,
sum(case course when '语文' then grade else 0 end) as 语文,
sum(case course when '数学' then grade else 0 end) as 数学,
sum(case course when '英语' then grade else 0 end) as 英语
from diy.new_table as n
group by name;
SELECT name,'语文' AS 科目,语文 AS 成绩 FROM new_table1 UNION ALL
SELECT name,'数学' AS 科目,数学 AS 成绩 FROM new_table1 UNION ALL
SELECT name,'英语' AS 科目,英语 AS 成绩 FROM new_table1
ORDER BY name,科目 DESC;
横纵表互转技巧
本文介绍了如何使用SQL实现横纵表之间的转换,通过CASE WHEN语句聚合特定科目的成绩,实现了从宽表到长表的数据结构调整。适用于教育数据管理和成绩统计等场景。
128

被折叠的 条评论
为什么被折叠?



