@The_Pro_Killer

Как выбирать сценарий при вставке данных в таблицу?

У меня есть какой-то набор данных и мне надо вставить его в несколько таблиц (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,
    ),

Можно ли такое как-то сделать? Что-то у меня вообще не получается... Заранее спасибо!
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
null - это и есть "отсутствие данных".
Надо не маяться дурью, а просто вставлять данные как есть.
если вместо null надо вставить что-то еще, то использовать COALESCE
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы