-2 sql t-sql sql-server sql-insert
您好我无法弄清楚如何从一个表到另一个表插入不重复的行,我想到这样的事情
INSERT INTO Table1
SELECT id, name, lastname FROM Table2
WHERE id.Table1 != id.Table2
AND name.Table1 != name.Table2
AND lastname.Table1 != lastname.Table2
Run Code Online (Sandbox Code Playgroud)
如果它已经存在,如何编写指定不插入的条件?
编辑:我忘了提到我需要只匹配某些列,因为表包含标识1,1我的解决方案如下:
MERGE Table1 as t1
USING (SELECT name, lastname FROM Table2) AS t2 (name, lastname)
ON t1.[name] = t2.[name] AND t1.[lastname] = t2.[lastname]
WHEN NOT MATCHED
THEN
INSERT (name, lastname) VALUES (t2.[name], t2.[lastname]);
Run Code Online (Sandbox Code Playgroud)
当然,这只是一个例子,我使用了更多的列和数据
编辑:不重复,因为所提供的解决方案与整个表格匹配
解决这个问题的一种方法是使用except运算符:
INSERT INTO Table1
SELECT id, name, lastname FROM Table2
EXCEPT
SELECT id, name, lastname FROM Table1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |