【问题标题】:fetch values into a comma separated string in postgresql [duplicate]在postgresql中将值提取到逗号分隔的字符串中[重复]
【发布时间】: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 是否可行?

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

提前致谢。

【问题讨论】:

    标签: sql postgresql postgresql-9.1


    【解决方案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:这已经被问过很多次了。其中之一是:stackoverflow.com/q/2560946/330315
      • 是的,我知道。但我找不到使用标准扩展的答案。但是 SELECT array_to_string(array(SELECT a FROM b),', ') 确实有效。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      相关资源
      最近更新 更多