sql插入数据时,避免插入重复数据

1.往表T_Mid_WaterIndexArea中插入数据

   insert into [dbo].[T_Mid_WaterIndexArea](AreaCode,Year,DO,CODMn,BOD5,COD,NH3N,TP,TN,CompositeIndex)
select c.AreaCode,c.Year,
--c.AreaName,
AVG(c.DO) DO,AVG(c.CODMn) CODMn,AVG(c.BOD5) BOD5,AVG(c.COD) COD,
AVG(c.NH3N) NH3N,AVG(c.TP) TP,AVG(c.TN) TN,AVG(c.CompositeIndex) CompositeIndex
  from
(select a.*,b.Year,b.DO,b.CODMn,b.BOD5,b.COD,b.NH3N,b.TP,b.TN,b.CompositeIndex 
from 
[dbo].[T_Bas_RiverSection] a
join [dbo].[T_Mid_WaterIndexSection] b
on a.SectionCode=b.SectionCode) c
group by c.AreaCode,c.Year


2.避免插入重复数据


   insert into [dbo].[T_Mid_WaterIndexArea](AreaCode,Year,DO,CODMn,BOD5,COD,NH3N,TP,TN,CompositeIndex)
select * from
(select c.AreaCode,c.Year,
--c.AreaName,
AVG(c.DO) DO,AVG(c.CODMn) CODMn,AVG(c.BOD5) BOD5,AVG(c.COD) COD,
AVG(c.NH3N) NH3N,AVG(c.TP) TP,AVG(c.TN) TN,AVG(c.CompositeIndex) CompositeIndex
  from
(select a.*,b.Year,b.DO,b.CODMn,b.BOD5,b.COD,b.NH3N,b.TP,b.TN,b.CompositeIndex 
from 
[dbo].[T_Bas_RiverSection] a
join [dbo].[T_Mid_WaterIndexSection] b
on a.SectionCode=b.SectionCode) c
group by c.AreaCode,c.Year) d
--判断数据库中是否存在重复数据,重复数据不插入
where not exists(select  * from T_Mid_WaterIndexArea  w where w.AreaCode=d.AreaCode and w.Year=d.Year)


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值