pgsql一行转多行如何实现

avatar
作者
猴君
阅读量:0

在PostgreSQL中,如果你想将一行数据转换为多行,可以使用STRING_AGG()函数结合WITHIN GROUP (ORDER BY ...)语句来实现。下面是一个示例:

假设我们有一个名为my_table的表,其中有一个名为id的列和一个名为value的列,我们想要将具有相同id值的行合并,并将value列的值用逗号分隔。

SELECT id, STRING_AGG(value, ',') WITHIN GROUP (ORDER BY value) AS values FROM my_table GROUP BY id; 

这将返回以下结果:

 id |    values ----+-------------   1 | value1,value2   2 | value3,value4 

在这个例子中,我们首先使用GROUP BY子句按id列对数据进行分组。然后,我们使用STRING_AGG()函数将每个分组中的value列的值连接成一个字符串,用逗号分隔。最后,我们使用WITHIN GROUP (ORDER BY value)对结果进行排序。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!