У меня есть какой-то набор данных и мне надо вставить его в несколько таблиц (PostgreSQL). Делаю я это следующим образом:
with data(name, surname, age, highth, width) as (
values ('Иван', 'Иванов', '30', '100', '500')
),
insert1 as (
insert into af_table1 (name, surname, age)
select name, surname, age from data
),
insert2 as (
insert into af_table2 (surname, highth)
select surname, highth from data
), и так далее
Но, допустим, мне надо сделать так, чтобы в какую-то таблицу (например, table3) вставлялись разные данные в зависимости от того, заполнено какое-то поле в изначальных данных (например, width) или нет. То есть что-то типа такого:
insert3 as (
"Если data.highth != null"
insert into af_table3 (surname, highth)
select surname, highth from data,
"Если data.width != null"
insert into af_table3 (surname, width)
select surname, width from data,
"Если data.width != null и data.highth != null"
insert into af_table3 (surname, width, highth)
select surname, width, highth from data,
),
Можно ли такое как-то сделать? Что-то у меня вообще не получается... Заранее спасибо!