我必须用最新的 PostgreSQL 替换 Oracle 驱动程序。PostgreSQL 不知道函数 LISTAGG。我必须concat
用逗号分隔值。LISTAGG
PostgreSQL中的 Oracle 功能等价物是什么?
问问题
50239 次
2 回答
46
PostgreSQL 中的等效函数是STRING_AGG()
SELECT STRING_AGG (column_name,', ')
FROM my_table
string_agg:输入值连接成一个字符串,用分隔符分隔
例如agreement_id
,在 Apache Ofbiz 17.12.04 中获取所有列表,然后将其表示为字符串
SELECT STRING_AGG(agreement_id, ', ') FROM agreement_item;
-- result
-- "8000, DS-1000-SALES, DS-1000-PURCH, 9000, AGR_SALES"
于 2015-04-10T09:14:05.917 回答
11
从 Postgres 9.0 或更高版本开始,我相信您可以执行以下操作:
SELECT c_id, STRING_AGG(c_grp_id, ',' ORDER BY c_grp_id) AS group_ids
FROM c_grp_at
GROUP BY c_id
于 2018-09-20T06:14:06.927 回答