Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2019, 17:27   #1
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию Insert в case when else

Добрый вечер. База postgresql.

Два запроса. Первый со вставкой в элсе не работает. Второй с селектом в элсе работает. Как сделать Инсерт в элсе с возвращением ид?


Код:
select  
case when id_file_in is not null then
id_file_in
else
(insert into in_files_forms(n_form,code,n_ka,dt_beg,dt_end,t_create_file,in_file) values(142,'N08',8999,'2016-04-15 16:03:35','2016-05-17 18:01:15','2016-05-16 19:02:00','test') returning id_file_in)
end from in_files_forms where n_form = 142 and code = 'N08' and n_ka = 8999 and dt_beg = '2016-04-15 16:03:35' and dt_end = '2016-05-17 18:01:15' and t_create_file = '2016-05-16 19:02:00' limit 1




select  
case when id_file_in is not null then
id_file_in
else
(select n_form from in_files_forms limit 1)
end from in_files_forms where n_form = 142 and code = 'N08' and n_ka = 8999 and dt_beg = '2016-04-15 16:03:35' and dt_end = '2016-05-17 18:01:15' and t_create_file = '2016-05-16 19:02:00' limit 1
ivan.tiran вне форума Ответить с цитированием
Старый 29.01.2019, 17:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,694
По умолчанию

Цитата:
Сообщение от ivan.tiran Посмотреть сообщение
Как сделать Инсерт в элсе с возвращением ид?
Использовать IF..ELSE..END или writable common table expression.
p51x на форуме Ответить с цитированием
Старый 29.01.2019, 17:48   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

В case ни как
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
insert into сразу в несколько таблиц (вложенный insert) dualtrey Помощь студентам 10 23.01.2017 18:00
INSERT Masafi PHP 7 13.01.2013 12:32
Перемещение из case 1 в case 2(switch(), язык Си) Павел_95 Помощь студентам 13 11.01.2013 14:18
Insert Progsenya SQL, базы данных 8 19.02.2011 18:29
Insert - ? Evgenii БД в Delphi 2 06.07.2009 02:24