0

我有以下sql:

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

但我收到以下错误:

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

我正在使用 PostgreSQL 9.0

4

1 回答 1

0

concat_ws从 9.1 版开始可用。

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


演示: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. 重新聚合并转换为字符串
于 2019-01-14T15:44:09.740 回答