首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

将结果集安插到另一张表,且数据必须有条件的不重复

2013-04-09 
将结果集插入到另一张表,且数据必须有条件的不重复在mssql中,使用sql查询到满足条件的一个结果集,然后插入

将结果集插入到另一张表,且数据必须有条件的不重复
在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 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))

热点排行