PostgreSQL - функция concat_ws (неизвестно, символ меняется, символ меняется) не существует - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующий sql:

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

Но я получаю следующую ошибку:

функция concat_ws (неизвестно, символ меняется, символ меняется) не существует

Я использую PostgreSQL 9.0

1 Ответ

0 голосов
/ 14 января 2019

concat_ws доступно с версии 9.1.

Я настоятельно рекомендую обновить вашу базу данных.


демо: дБ <> скрипка

Версия для 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. Реагрегировать и преобразовать в строку
...