在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)
對結果進行排序。