У меня следующие две таблицы:
Table1
----------
ID Name
1 A
2 B
3 C
Table2
----------
ID Name
1 Z
Мне нужно вставить данные из Table1
в Table2
. Я могу использовать следующий синтаксис:
INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1
Однако в моем случае дублирующие идентификаторы могут существовать в Table2
(в моем случае это просто "1
" ), и я не хочу копировать это снова, поскольку это вызовет ошибку.
Я могу написать что-то вроде этого:
IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1)
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1
ELSE
INSERT INTO Table2 (Id, name) SELECT Id, name FROM Table1 WHERE Table1.Id<>1
Есть ли лучший способ сделать это, не используя IF - ELSE
? Я хочу избежать двух операторов INSERT INTO-SELECT
, основанных на некоторых условиях.