在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中将值提取到逗号分隔的字符串中[重复]的主要内容,如果未能解决你的问题,请参考以下文章