一般SQL / MySQL将行转换为列

时间:2016-10-10 19:52:27

标签: mysql sql pivot

我目前正在努力试图转动一张桌子。[/ p>

表格的简化版本可能与以下内容类似:

 dayName      amount
---------------------
Monday         34
Tuesday        3453
...            ...

理想情况下,我希望能够将每一天变成一个列,并将每个金额作为其值。 有什么建议可以干净利落的方式吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的行始终是一周中的几天,那么您可以使用以下内容:

select 
sum(case when dayName = 'Monday' then amount end) as 'Monday',
sum(case when dayName = 'Tuesday' then amount end) as 'Tuesday' 
.
.
.
from DaysOfWeek;

不幸的是,MySQL没有PIVOT功能。

http://sqlfiddle.com/#!9/c1a11/6