将结果集插入到另一张表,且数据必须有条件的不重复
在mssql中,使用sql查询到满足条件的一个结果集,然后插入到A表中,A表中可能存在与这个结果集相似的数据。
结果集:
MeterNo ReType FaultTime Remark UploadTime StreetNo PoleNo IsTreate
20100011 0 2013-04-03 2013-04-03 0005 0011 0
20100016 0 2013-04-03 2013-04-03 0005 0016 0
20100008 0 2013-04-03 2013-04-03 0001 0002 0
20100012 0 2013-04-03 2013-04-03 0005 0012 0
20100013 0 2013-04-03 2013-04-03 0005 0013 0
20100010 0 2013-04-03 2013-04-03 0005 0010 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 tbA
selectc * from #t t where not exists(select 1 from tbA where t.MeterNo=MeterNo)
or exists (select 1 from tbA where t.MeterNo=MeterNo and 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))