mysql - 如何将多行合并为表中的单行
解决方案
您可以将查询与PIVOT
操作一起使用
询问
WITH
marks_data (id, subject, marks)
AS
(SELECT 1, 'maths', 100 FROM DUAL
UNION ALL
SELECT 1, 'physics', 95 FROM DUAL
UNION ALL
SELECT 1, 'chemistry', 99 FROM DUAL
UNION ALL
SELECT 2, 'maths', 90 FROM DUAL
UNION ALL
SELECT 2, 'physics', 89 FROM DUAL
UNION ALL
SELECT 2, 'chemistry', 96 FROM DUAL)
SELECT *
FROM (SELECT * FROM marks_data)
PIVOT (MAX (subject) AS subject, MAX (marks) AS marks
FOR subject
IN ('maths' AS maths, 'physics' AS physics, 'chemistry' AS chemistry));
结果
ID MATHS_SUBJECT MATHS_MARKS PHYSICS_SUBJECT PHYSICS_MARKS CHEMISTRY_SUBJECT CHEMISTRY_MARKS
_____ ________________ ______________ __________________ ________________ ____________________ __________________
1 maths 100 physics 95 chemistry 99
2 maths 90 physics 89 chemistry 96
推荐阅读
- python - 如何将外部变量传递给带有变量名的python程序?
- networking - 一个网络中的两个路由器;一台作为网关,一台作为 DHCP 服务器
- r - 最小二乘虚拟变量模型
- vue.js - Vuetify:v-ripple 只能用于块级元素
- json - 无法在 Powershell 中创建带字符串的文件名
- python - 使用 TukeyHSD 进行多重比较时出现类型错误
- javascript - select.prev(".class").val(); 返回未定义的值
- java - 如何忽略特定的库子类?
- python - 如果我的类型是函数,我可以在 Python 中使用什么类型提示?
- android - Android - ConsentInformation - 无法解析事件 FE 预检响应