将结果集插入到另一张表,且数据必须有条件的不重复
在mssql中,使用sql查询到满足条件的一个结果集,然后插入到A表中,A表中可能存在与这个结果集相似的数据。
结果集:
MeterNo ReTypeFaultTime RemarkUploadTimeStreetNoPoleNoIsTreate
2010001102013-04-03 2013-04-03 00050011 0
2010001602013-04-032013-04-03 00050016 0
2010000802013-04-03 2013-04-03 00010002 0
2010001202013-04-03 2013-04-03 00050012 0
2010001302013-04-03 2013-04-03 00050013 0
2010001002013-04-03 2013-04-0300050010 0
插入A表的条件:如果A表中存在 20200011 这条数据,那么就检查下IsTreate是否等于0,如果等于0,则不插入,如果不等于0,则插入。
如果A表中不存在20200011这条数据,那么直接插入
这些动作实在存储中完成的,用程序一条一条的查询验证就算了。 sql
[解决办法]
INSERT INTO A
SELECT * FROM 原表 WHERE MeterNo NOT IN(SELECT MeterNo FROM A WHERE IsTreate=0)
insert into T1 --结构T1/T2表相同时可不指定列
select *
from T2 as a
where not exists(select 1 from T1 where MeterNo=a.MeterNo or (MeterNo=a.MeterNo and IsTreate=0))