0
我移植一些MySQL的代碼給Postgres並且具有一個時間赫克轉換下面一行:如何將MySQL GROUP_CONCAT更改爲PostgreSQL string_agg?
GROUP_CONCAT(
DISTINCT id,':',foo,':',bar ORDER BY id
) as id,
這將導致一個逗號分隔像字符串列表:
ID:FOO :bar,id2:foo2:bar2
'DISTINCT'是爲了避免重複。
我讀過Postgres中GROUP_CONCAT的等價物是string_agg,但我無法弄清楚如何使它以相同的方式工作。
編輯:我可能已經差不多回答了我自己的問題。我想出了使用CONCAT的解決方案。這裏的問題是,現在排序是由連接字符串,而不是由ID進行:
string_agg(DISTINCT CONCAT(
id::text, ':', foo, ':', bar, ':'
), ',') as id
如果我嘗試添加「ORDER BY ID」我得到一個錯誤。