mysql - 在sql中的一行中转置多个值

标签 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

提前致谢。

最佳答案

鉴于您可能需要更多列,具体取决于每个 id 组出现的记录数,我建议使用组串联的替代方法:

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

enter image description here

Demo

如果您有更多的列要添加,您只需要将额外的列添加到 CONCAT_WS

关于mysql - 在sql中的一行中转置多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52752784/

相关文章:

php - 如何在 yii 中将多个值发送到 mysql 表

mysql - 选择接下来 24 小时的工作

php - 在数据库的整数列中使用 `null`或 `-1`表示 "infinite"更好吗

mysql - 在一个查询中从单个 mysql 表中选择行和总和

sql - 使用SQL获取嵌套json对象中第一个键的值

mysql - DB2 使用日期和时间显示用户的最新行记录

php - Mysql 查询未在 opencart 中运行且未从数据库中获取数据

mysql - Jdbc river 在 MapperParsingException 上停止

sql - 使用 SQL 计算百分比

java - Oracle Sql 中的正则表达式