替代array_agg()吗? [英] Alternatives to array_agg()?

查看:103
本文介绍了替代array_agg()吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

PostgreSQL的 array_agg()函数是否可以替代,因此它不返回以下格式的值:'{x,y,z, }'

我可以让它返回:'x,y,z'吗?

Is there any alternative to the PostgreSQL array_agg() function so that it doesn't return values in the format: '{x,y,z,}'.
Can I have it return just: 'x,y,z' ?

推荐答案

PostgreSQL 9.0 或更高版本中,使用 string_agg(val,',')

它返回一个带有您选择的定界符的字符串。

In PostgreSQL 9.0 or later use string_agg(val, ',').
It returns a string with delimiters of your choosing.

array_agg(val) 返回一个 array ,这并不奇怪。您看到的花括号是 数组文字 -数组的文本表示形式。

array_agg(val) returns an array, no surprise there. The curly braces you see are integral part of array literals - the text representation of arrays.

在较旧版本(或任何实际版本)中,您可以替换为 array_to_string(array_agg(val), ',')

In older versions (or any version really) you can substitute with array_to_string(array_agg(val), ',').

或者,快速'n'dirty: trim(array_agg(val):: text ,'{}'-如果值从不以大括号开头或结尾。

Or, quick'n'dirty: trim(array_agg(val)::text, '{}' - if values never start or end with curly braces.

这篇关于替代array_agg()吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆