首页 > 解决方案 > PostgreSQL 中的 LISTAGG 等价物

问题描述

我在将其从 Oracle 转换为 PostgreSQL 时遇到问题。我试过使用 STRING_AGG,但没有任何成功。我相信 REGEXP_REPLACE 也存在问题。有人可以帮忙吗?

REGEXP_REPLACE(
    LISTAGG(column_name, ',') WITHIN GROUP (ORDER BY column_name), 
    '([^,]+)(,\1)*(,|$)', 
    '\1\3'
)

标签: postgresqlstring-aggregation

解决方案


也许你想要这样的东西:

string_agg(DISTINCT column_name, ',' ORDER BY column_name)

推荐阅读