MySQL将列转置为行

时间:2014-06-19 12:26:48

标签: mysql sql

我有下表

-----------------------------------------------------------
| Project    | Q1_HC  | Q2_HC  | Q1_COST  | Q2_COST       |
-----------------------------------------------------------
| ProjectA   | 20     | 15     | 20000.00 | 15000.00      |
| ProjectB   | 10     | 15     | 10000.00 | 15000.00      |
-----------------------------------------------------------

出于这个原因,我想要一个像这样的视图

-------------------------------------------
| Project    | Quarter| HC     | COST     |
-------------------------------------------
| ProjectA   | Q1     | 20     | 20000.00 |
| ProjectA   | Q2     | 15     | 15000.00 |
| ProjectB   | Q1     | 10     | 10000.00 |
| ProjectB   | Q2     | 15     | 15000.00 |
-------------------------------------------

我在这里见过很多线程,但没有人帮助我。任何帮助表示赞赏

1 个答案:

答案 0 :(得分:4)

这样的事情应该有效

SELECT Project, 'Q1' Quarter, Q1_HC HC, Q1_COST COST
FROM TableName
UNION
SELECT Project, 'Q2', Q2_HC, Q2_COST
FROM TableName
ORDER BY Project, Quarter