SQL Server - удаление повторяющихся строк при добавлении новых строк - PullRequest
0 голосов
/ 30 января 2019

Я изучал вопросы с повторяющимися строками, но не видел ничего, что соответствовало бы моему случаю.Кроме того, я довольно новичок в SQL Server, поэтому я прошу прощения, если у меня нет особого смысла.

Итак, у меня есть существующая таблица (скажем, TableA), которая содержит историческую информацию.У меня есть запрос, который выполняется каждое воскресенье и создает таблицу, только с входными данными с предыдущей недели (с субботы по пятницу) и сохраняет ее в другой таблице (TableB).

Я обновляю TableA данными из TableB каждое воскресенье, и я использую INSERT INTO, который работает.Однако иногда мне может потребоваться выполнить запрос вручную в середине недели, и в этом случае я могу получить дубликаты в воскресенье.

Как именно я пишу INSERT INTO, чтобы я не получал дублирующиеся строки и сохранял значения изпоследний запрос выполнения?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Попробуйте это:

INSERT INTO TABLEA(Col1, Col2 ...)
SELECT Col1, Col2 ... FROM TABLEB
EXCEPT
SELECT Col1, Col2 ... FROM TABLEA
0 голосов
/ 30 января 2019

Вы не предоставили детали своей схемы, но самый простой способ проверить дубликат перед вставкой - это использовать NOT EXISTS, как в следующем примере запроса.

INSERT INTO TARGET_TABLE (Col1, Col2 ...)
SELECT Col1, Col2 .. FROM [SOURCE] S
WHERE NOT EXISTS
(
  SELECT 1 FROM TARGET_TABLE T WHERE T.UniqueIdentifierColumn= S.UniqueIdentifierColumn
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...