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

时间:2019-01-14 15:40:49

标签: string-concatenation postgresql-9.0

我有以下sql:

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

但是出现以下错误:

  

功能concat_ws(未知,字符变化,字符变化,字符变化)不存在

我正在使用PostgreSQL 9.0

1 个答案:

答案 0 :(得分:0)

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. 重新聚合并转换为字符串