Concat функция в postgresql - PullRequest
1 голос
/ 22 мая 2019

У меня есть приведенный ниже оператор выбора в улье. Он прекрасно исполняется.

В улье

select
COALESCE(product_name,CONCAT(CONCAT(CONCAT(TRIM(product_id),' - 
'),trim(plan_code)),' - UNKNOWN')) as product_name
from table name;

Я пытаюсь использовать тот же оператор select в POSTGRESQL, и он выдает ошибку «

».

Ошибка выполнения запроса

Причина:

Ошибка SQL [42883]: ОШИБКА: функция concat (текст, неизвестен) не существует
Подсказка: ни одна функция не соответствует заданному имени и типу аргумента. Возможно, вам придется добавить явные приведения типов.

В postgresql:

select
COALESCE(product_name,CONCAT(CONCAT(CONCAT(TRIM(product_id),' - 
'),trim(plan_code)),' - UNKNOWN')) as product_name
from table name;

Может ли кто-нибудь пролить свет на это?

1 Ответ

1 голос
/ 22 мая 2019

Вместо concat попробуйте с ||:

SELECT COALESCE(product_name, 
        (TRIM(product_id) || ' - ' || TRIM(plan_code) || ' - UNKNOWN')
       ) AS product_name 
FROM tablename;

или просто один CONCAT как:

SELECT COALESCE(product_name, 
         CONCAT(TRIM(product_id)::text, ' - ', TRIM(plan_code)::text, ' - UNKNOWN') 
       ) AS product_name
FROM tablename;
...