处理源表中的重复项

时间:2018-07-06 13:01:25

标签: sql sql-server sql-server-2008

我正在尝试在SQL Server 2008中执行如下查询:

INSERT INTO TABLE_2 (id, name)
SELECT t1.id, t1.name
FROM TABLE_1 t1
WHERE t1.id NOT IN (SELECT id FROM TABLE_2)

NOT IN处理我已经在TABLE_1中拥有一个值的情况,但是当TABLE_2中存在重复的值而{{1}中还没有重复值时,我会收到错误消息}。有办法解决吗?

问题是我的TABLE_1TABLE_1具有唯一的约束,但是我的id没有约束,并且不能更改。

1 个答案:

答案 0 :(得分:2)

如何在选择中添加DISTINCT以避免重复值?

INSERT INTO TABLE_2 (id, name)
SELECT DISTINCT t1.id, t1.name
FROM TABLE_1 t1
WHERE t1.id NOT IN (SELECT id FROM TABLE_2)