在postgresql中将值提取到逗号分隔的字符串中[重复]

Posted

技术标签:

【中文标题】在postgresql中将值提取到逗号分隔的字符串中[重复]【英文标题】:fetch values into a comma separated string in postgresql [duplicate] 【发布时间】:2016-02-05 02:47:45 【问题描述】:

这应该很简单。类似的查询

SELECT code_id FROM code WHERE status = 1

通常会给出类似的结果

code_id
10
11
12

但我的目标是获取类似的字符串

10,11,12

为了在其他查询中使用它

SELECT x FROM table WHERE status in (10,12,13)

在同一个查询中更受欢迎。在不添加额外扩展的情况下使用“标准”Postgresql 是否可行?

到目前为止,一切都在使用标准不可用的扩展。

提前致谢。

【问题讨论】:

【参考方案1】:

为了方便起见,您使用的任何工具都只会向您显示类似的数据。但你也可以在subquery 中使用结果集,像这样

SELECT x FROM table WHERE status in (
    SELECT code_id FROM code WHERE status = 1
)

【讨论】:

【参考方案2】:

您可以尝试这种方式以逗号分隔的方式获得结果

但我的目标是获取类似的字符串

SELECT string_agg(code_id, ',') FROM code WHERE status = 1

【讨论】:

此功能在 9.1 中作为标准 AFAIK 不存在。我收到一个错误。 @sibert:这已经被问过很多次了。其中之一是:***.com/q/2560946/330315 是的,我知道。但我找不到使用标准扩展的答案。但是 SELECT array_to_string(array(SELECT a FROM b),', ') 确实有效。谢谢!

以上是关于在postgresql中将值提取到逗号分隔的字符串中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

mysql中将一列以逗号分隔的值分割成多列显示?

在mysql中将分隔字符串转换为多个值

在 Python 3 中将逗号分隔的字符串转换为 Numpy 数组

如何在 Perl 中将列表输出为逗号分隔值?

如何在oracle中将值列表转换为逗号分隔值

在PHP中将字符串[基本上是逗号分隔的数字]转换为整数的最佳方法[重复]