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

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

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

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

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

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

1 ответ

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

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


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

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