【问题标题】:PostgreSQL - function concat_ws(unknown, character varying, character varying) does not existPostgreSQL - 函数 concat_ws(未知,字符变化,字符变化)不存在
【发布时间】:2019-01-14 15:40:48
【问题描述】:

我有以下sql:

SELECT concat_ws(', ', address1, address2, address3) as address
FROM mydb."addresses"

但我收到以下错误:

函数concat_ws(未知,字符变化,字符变化,字符变化)不存在

我使用的是 PostgreSQL 9.0

【问题讨论】:

标签: postgresql string-concatenation postgresql-9.0


【解决方案1】:

concat_ws 从 9.1 版开始可用。

我强烈建议更新您的数据库。


demo: db<>fiddle

9.0 版本:

SELECT array_to_string(array_agg(field), ', ')    -- 4
FROM (
    SELECT 
        unnest(                                   -- 2
            ARRAY[address1, address2, address3]   -- 1
        ) as field
    FROM address
) s
WHERE field is NOT NULL                           -- 3
  1. 将所有列放在一个数组中
  2. unnest() 这个数组。这会将元素扩展到每一行
  3. 过滤 NULL 值(这就是 concat_ws() 所做的)
  4. 重新聚合并转换成字符串

【讨论】:

  • 添加了 9.0 兼容版本
猜你喜欢
  • 2013-01-09
  • 2012-05-11
  • 2020-03-19
  • 1970-01-01
  • 2014-07-02
  • 2017-06-23
  • 1970-01-01
  • 2019-12-13
  • 2014-06-30
相关资源
最近更新 更多