将sql行转换为列

时间:2010-08-30 15:11:05

标签: sql mysql

我有一张桌子:

A    B     c
a1   1     a11
a1   2     a12
a1   3     a13
a2   1     a21
a2   2     a22
a2   3     a23

我希望将其转换为:

A     C1     C2     C3
a1    a11    a12    a13
a2    a21    a22    a23

如何编写SQL查询来实现此目的...我不想将我的表转换为csv并使用python并执行它...

1 个答案:

答案 0 :(得分:2)

SELECT A,
MAX(CASE WHEN B=1 THEN c END) AS C1,
MAX(CASE WHEN B=2 THEN c END) AS C2, // etc for B=3,4
FROM table1
GROUP BY A