Можно сделать UPDATE (SQL) с выводом, какие строки не найдены?

У меня есть список в таблице surname и name в excel. Формулой сцепить формирую следующий запрос:

UPDATE table_name SET surname='surname' WHERE name='name'

В таблице 6000 строк, в базе 5000. Можно ли получить список какие name не получилось обновить? Ну или просто как сделать сопоставление, но с выводом того, чего нет в списке?
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 2
terrier
@terrier
Ну, собственно загрузить полный список имен в таблицу ( пусть from_excel ) и вперед

with updated as
( update table_name surname='surname' WHERE name='name'  returning name )
select name from from_excel where name not in ( select name from updated );
Ответ написан
Falseclock
@Falseclock
решаю нестандартные задачи
Делаете временную таблицу, в нее выгружаете уникальные идентификаторы, затем делаете апдейт с возвратом UPDATE from bla bla bla RETURNING, который джоинете с выгруженными данными во времянку.

Можно и без временной таблицы обойтись, но у запроса будет много вложенностей.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы