将sql行转换为列
我有一张桌子:将sql行转换为列,sql,mysql,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进行转换 看看。只是为了澄清一些。
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进行转换 看看。只是为了澄清一些。是否要根据B列中的值将C列拆分为多个列?您是在尝试替换第一个表设计,还是在尝试编写一个查询,该查询将保留第一个表设计,但会提取第二个表设计的值?我想查看使用此设计的表。
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