使用UNION实现mysql 行列变换(一)

表格1:表名:score

+------+---------+---------+------+-------+
| name | chinese | english | math | total |
+------+---------+---------+------+-------+
| Tom  |      90 |      80 |  100 |   270 |
+------+---------+---------+------+-------+

表格2:

+---------+-------+
| subject | value |
+---------+-------+
| 语文    |    90 |
| 数学    |   100 |
| 英语    |    80 |
| 总分    |   270 |
+---------+-------+

要把表格1 变成 表格2

方法1:

第一步:

select ''subject,0 value from dual;

结果为:

+---------+-------+
| subject | value |
+---------+-------+
|         |     0 |
+---------+-------+

第二步:

select '语文' subject, (select chinese from score) value;

结果为:

+---------+-------+
| subject | value |
+---------+-------+
| 语文    |    90 |
+---------+-------+

使用union将结果组合

select '语文' subject, (select chinese from score) value 
union 
select '数学' subject, (select math from score) value 
union 
select '英语' subject,(select english from score) value 
union 
select '总分' subject,(select total from score) value;
+---------+-------+
| subject | value |
+---------+-------+
| 语文    |    90 |
| 数学    |   100 |
| 英语    |    80 |
| 总分    |   270 |
+---------+-------+

 

posted @   华小电  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示