在SQL中的一行中转置多个值

时间:2018-10-11 05:26:10

标签: mysql sql

我有类似

的数据
id  var1 var2
1   A1   B1
1   A2   B2
1   A3   B3

如何获取

之类的数据
id v1 v2 v3 v4 v5 v6
1 A1 B1 A2 B2 A3 B3

谢谢。

1 个答案:

答案 0 :(得分:0)

鉴于您可能需要更多列,具体取决于每个id组中出现了多少条记录,因此我建议使用组串联的另一种方法:

SELECT
    id,
    GROUP_CONCAT(CONCAT_WS(',', var1, var2)) AS output
FROM yourTable
GROUP BY
    id;

enter image description here

Demo

如果要添加更多列,则只需向CONCAT_WS添加其他列。