Как можно вписать два столбца в один столбец при условии что записываемые даные сверялись с еще одним столбцом в 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";