mysql行列转换示例
扫描二维码
随时随地手机看文章
现把转换方法列举如下:
1、纵表转横表:
纵表结构 TableA
Name
Course
Grade
张三
语文
75
张三
数学
80
张三
英语
90
李四
语文
95
李四
数学
55
横表结构 TableB
Name
语文
数学
英语
张三
75
80
90
李四
95
55
0
方法一:
select 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 TableA
group by Name
2、横表转纵表的"SQL"示例
横表结构: TEST_H2Z
ID 姓名 语文 数学 英语
1 张三 80 90 70
2 李四 90 85 95
3 王五 88 75 90
转换后的表结构:
ID 姓名 科目 成绩
1 张三 语文 80
2 张三 数学 90
3 张三 英语 70
4 李四 语文 90
5 李四 数学 80
6 李四 英语 99
7 王五 语文 85
8 王五 数学 96
9 王五 英语 88
横表转纵表SQL示例:
SELECT 姓名,'语文' AS 科目,语文 AS 成绩 FROM TEST_H2Z UNION ALL
SELECT 姓名,'数学' AS 科目,数学 AS 成绩 FROM TEST_H2Z UNION ALL
SELECT 姓名,'英语' AS 科目,英语 AS 成绩 FROM TEST_H2Z
ORDER BY 姓名,科目 DESC;
原文链接:http://www.cnblogs.com/luluping/archive/2012/07/26/2610705.html