【发布时间】:2019-07-29 11:23:08
【问题描述】:
我正在尝试跳过在主键列中包含相同数据的行 并将结果插入到主表中。
我也在使用 distinct 关键字。行是不同的,但主键列包含一些相同的数据。
我已经尝试过IGNORE_DUP_KEY = ON,但是插入了重复的一行。我不希望插入任何包含主键列中重复数据的行
SELECT DISTINCT m.Mainname,ipaddress, domain, firstname, lastname,v.id,
v.idtype,m.SerialNumber FROM firsttable m INNER JOIN view_sometable v ON
v.SerialNumber = m.Mainname
WHERE m.Mainname Not IN (
SELECT Mainname FROM Mastertable)
and v.SerialNumber <>''
AND v.Mainname<> m.Mainname
and m.Mainname IN (select Hostname from firsttable where
Mainname like 'som-%' OR Mainname like 'li-%' OR Mainname like 'spl-%')
从上面的 select 语句中,我能够检索到确切的数据,但有时我会得到两个不同的行,但 mainname 列包含相同的数据,我无法跳过并恢复插入。
【问题讨论】:
-
首先,选择主键字段中的所有不同值,然后将其作为内部查询或连接输入到查询中。
-
在上面的查询结果中,我在 Mainname 列中获得了一些多个数据,我想从结果中跳过所有多个列并继续插入。如果可能的话,你能给我查询吗
-
该行是否仅在主键中具有相同的值?还是所有列?如果重复行在所有列中的值不同,则需要指定条件以指定选择哪一行。
-
仅对于序列号列,重复主键列的数据不同
标签: sql-server insert