sql 存储过程处理重复数据
有一个表A
销售订单测试查询
销售订单测试查询
销售订单测试查询
销售订单测试查询2
销售订单测试查询
往表b里面插数据,表A里名字相同的就加1,最后插入b表里的数据就如下图:
销售订单测试查询
销售订单测试查询1
销售订单测试查询3
销售订单测试查询2
销售订单测试查询4
那位高手加我QQ:指点一下哦,我的代码不知道怎么修改
ALTER proc CopyDate @CheckID nvarchar(4000)
as
begin
declare @FID nvarchar(4000)
set @FID=@CheckID
--插入数据
declare Print_Cursor CURSOR for select FBillTypeID,FName,FDesigner,FDate,FGUID,FSystem from ##temp where 1=1 and CHARINDEX(','+RTRIM(fid)+',',','+@FID+',')>0
open Print_Cursor
declare @FBillTypeID int,
@FName varchar(100),
@FDesigner int,
@FDate varchar(50),
@FGUID varchar(50),
@FSystem int,
@Fcount int
fetch next from Print_Cursor into @FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem
while @@fetch_status=0
begin--////
-----查询是否有同样GUID的数据存在
if not exists(select * from t_BC_PrintDesign where FGUID=@FGUID)
begin--///
----查询是否有同样方案的数据存在
while(1=1)
begin
if exists(select * from t_BC_PrintDesign where FName=@FName)--同方案名
begin--/
select @Fcount=count(*) from t_BC_PrintDesign where FName like @FName+'%'
set @FName=@FName+convert(varchar(100),@Fcount)
end--/
else--/
break
end--/
insert into t_BC_PrintDesign values(@FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem)
end--///
fetch next from Print_Cursor into @FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem
end--////
CLOSE Print_Cursor
DEALLOCATE Print_Cursor
end
销售订单测试查询
销售订单测试查询
销售订单测试查询
销售订单测试查询2
销售订单测试查询
往表b里面插数据,表A里名字相同的就加1,最后插入b表里的数据就如下图:
销售订单测试查询
销售订单测试查询1
销售订单测试查询3
销售订单测试查询2
销售订单测试查询4
那位高手加我QQ:指点一下哦,我的代码不知道怎么修改
ALTER proc CopyDate @CheckID nvarchar(4000)
as
begin
declare @FID nvarchar(4000)
set @FID=@CheckID
--插入数据
declare Print_Cursor CURSOR for select FBillTypeID,FName,FDesigner,FDate,FGUID,FSystem from ##temp where 1=1 and CHARINDEX(','+RTRIM(fid)+',',','+@FID+',')>0
open Print_Cursor
declare @FBillTypeID int,
@FName varchar(100),
@FDesigner int,
@FDate varchar(50),
@FGUID varchar(50),
@FSystem int,
@Fcount int
fetch next from Print_Cursor into @FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem
while @@fetch_status=0
begin--////
-----查询是否有同样GUID的数据存在
if not exists(select * from t_BC_PrintDesign where FGUID=@FGUID)
begin--///
----查询是否有同样方案的数据存在
while(1=1)
begin
if exists(select * from t_BC_PrintDesign where FName=@FName)--同方案名
begin--/
select @Fcount=count(*) from t_BC_PrintDesign where FName like @FName+'%'
set @FName=@FName+convert(varchar(100),@Fcount)
end--/
else--/
break
end--/
insert into t_BC_PrintDesign values(@FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem)
end--///
fetch next from Print_Cursor into @FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem
end--////
CLOSE Print_Cursor
DEALLOCATE Print_Cursor
end
...全文
相关推荐
Sql Server使用cursor处理重复数据过程详解
本文将深入讲解如何使用`CURSOR` 来处理Sql Server中的重复数据。
sqlserver利用存储过程去除重复行的sql语句
在SQL Server中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作,包括处理重复数据。
oracle 查询重复数据
在IT行业的数据库管理中,处理重复数据是一项常见且重要的任务,尤其在大型数据库如Oracle中。本文将深入探讨如何在Oracle数据库中查询重复数据,理解SQL语句背后的逻辑,并掌握其实现方法。
删除表中重复数据sql语句.docx
总结,处理SQL中的重复数据涉及多种策略,从简单的`SELECT`查询到复杂的`DELETE`语句和存储过程。理解这些方法可以帮助你有效地管理和优化数据库中的数据。
删除数据库中重复数据的几个方法.docx
这些方法提供了处理SQL Server中重复数据和数据库恢复的基本思路,但在实际操作中,应根据具体环境和数据情况谨慎操作,确保数据的安全性。在删除重复数据前,最好先备份数据,防止不可逆的损失。


