【问题标题】: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
- 将所有列放在一个数组中
-
unnest() 这个数组。这会将元素扩展到每一行
- 过滤
NULL 值(这就是 concat_ws() 所做的)
- 重新聚合并转换成字符串