Как можно вписать два столбца в один столбец при условии что записываемые даные сверялись с еще одним столбцом в PostgreSQL.?

Доброе утро , у меня есть таблица в которой есть столбец imp_exp со значениями imp/exp и я хочу чтобы в столбец port_of_loading записывалось при значении 'imp' данные из другой таблицы , а при 'exp' вписывался текст. Придумал вот это , но я знаю что WHERE не работает с CONCAT. Может кто то предложить работуюштй вариант. Работаю на SQL Manager lite for PostgreSQL 6.2.0 (Сборка 54471).

INSERT INTO "DataB" ("imp_exp","terminal","port_of_loading")
SELECT "Направление", "Name Tablet", concat('2020/09' Where "imp_exp"='imp',"Экпедитор" Where "imp_exp"='emp')
FROM "ODSia";

Ответы (1 шт):

Автор решения: Alexander Pavlov
INSERT INTO "DataB" ("imp_exp","terminal","port_of_loading")
SELECT "Направление", "Name Tablet", 
  concat(
    '2020/09'
    , case imp_exp 
       when 'imp' then (select column from other_table where filter_column = xxx) 
       when 'exp' then 'text'
       else 'invalid data'
    end
  )
FROM "ODSia";
→ Ссылка