SQL Server数据库删除数据集中重复数据实例讲解

 更新时间:2015年08月18日 14:44:08   投稿:lijiao  
本文通过一个例子介绍了SQL Server数据库中删除数据集中的重复数据的操作过程,需要的朋友可以参考下

SQL Server数据库操作中,有时对于表中的结果集,满足一定规则我们则认为是重复数据,而这些重复数据需要删除。如何删除呢?本文我们通过一个例子来加以说明。

例子如下:

如下只要companyName,invoiceNumber,customerNumber三者都相同,我们则认为是重复数据,下面的例子演示了如何删除。

declare @InvoiceListMaster table ( ID int identity primary key ,  
 
companyName Nchar(20),  
 
invoiceNumber int,  
 
CustomerNumber int,  
 
rmaNumber int )  
 
insert  @InvoiceListMaster  
 
select N'华为', 1001,100,200  
 
union all  
 
select N'华为', 1001,100,300  
 
union all  
 
select N'华为', 1001,100,301  
 
union all  
 
select N'中兴', 1002, 200,1     
 
union all  
 
select N'中兴', 1002, 200,2  
 
select * from @InvoiceListMaster  
 
DELETE A  
 
from (  
 
select rown = ROW_NUMBER( )over( partition by companyname,  
 
invoicenumber,  
 
customerNumber   
 
order by companyname,  
 
invoicenumber,  
 
customerNumber ),  
 
companyname,  
 
invoicenumber,  
 
customerNumber  
 
from @InvoiceListMaster )a  
 
where exists ( select 1   
 
from ( select rown = ROW_NUMBER( )over( partition by companyname,  
 
invoicenumber,  
 
customerNumber   
 
order by companyname,  
 
invoicenumber,  
 
customerNumber ),  
 
companyname,  
 
invoicenumber,  
 
customerNumber  
 
from @InvoiceListMaster ) b  
 
where b.companyName = a.companyName  
 
and b.invoiceNumber = a.invoiceNumber  
 
and b.CustomerNumber = a.CustomerNumber  
 
and a.rown > b.rown  
 
)  
 
select * from @InvoiceListMaster 

以上的例子就演示了SQL Server数据库删除数据集中重复数据的过程,希望本次的介绍能够对您有所收获!

相关文章

  • SQL Server中的SQL语句优化与效率问题

    SQL Server中的SQL语句优化与效率问题

    这篇文章主要介绍了SQL Server中的SQL语句优化与效率问题的相关资料,需要的朋友可以参考下
    2014-07-07
  • sql 随机抽取几条数据的方法 推荐

    sql 随机抽取几条数据的方法 推荐

    前段时间在做项目的时刻。总是遇到这样一个问题。就是要怎么去让首页显示的内容不断的变化。想了很久。也没有什么结果。后面去想了一下。得出以下一个结果
    2009-06-06
  • 常用SQL语句(嵌套子查询/随机等等)详细整理

    常用SQL语句(嵌套子查询/随机等等)详细整理

    本文整理了一些常用的sql语句:插入语句得到自动生成的递增ID值实现是1 或0 想显示为男或女/嵌套子查询/显示文章、提交人和最后回复时间/随机提取条记录的例子等等太多了就不一一讲了,感兴趣的朋友可以聊接下
    2013-01-01
  • SQL Server存储过程中使用表值作为输入参数示例

    SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样可以省去很多自定义的代码,需要的朋友可以参考下
    2015-07-07
  • SQL Server错误代码大全及解释(留着备用)

    SQL Server错误代码大全及解释(留着备用)

    SQL Server错误代码大全及解释,以后遇到错误就可以根据对照表查看了
    2012-06-06
  • 合并SQL脚本文件的方法分享

    合并SQL脚本文件的方法分享

    在平时的工作中,我会经常的碰到这样需要合并SQL脚本的问题。如,有很多的SQL脚本文件,需要按照一定的先后顺序,再生成一个合并SQL脚本文件,然后再发布到用户SQL Server服务器上。
    2011-09-09
  • 使用绿色版SQLServer2008R2出现的问题解析

    使用绿色版SQLServer2008R2出现的问题解析

    这篇文章主要介绍了使用绿色版SQLServer2008R2出现的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 安装MSDE2000提示为了安全起见,要求使用强 SA 密码的解决方法

    安装MSDE2000提示为了安全起见,要求使用强 SA 密码的解决方法

    今天下载了一个msde2000A,本想按照平时的安装习惯,找到了setup.exe安装程序,错误提示弹出一个对话框:为了安全起见,要求使用强 SA 密码。请使用SAPWD开关提供同一密码。有关详细信息,请参阅自述文件。安装程序将立即退出
    2013-08-08
  • SQL SERVER 分组求和sql语句

    SQL SERVER 分组求和sql语句

    这篇文章主要介绍了SQL SERVER 分组求和sql语句,需要的朋友可以参考下
    2017-01-01
  • SQL Server自动更新统计信息的基本算法

    SQL Server自动更新统计信息的基本算法

    最初接触SQL Server的时候认为SQLServer数据更改的同时就会相应的更新统计信息,其实SQL Server不是这样做的.基于性能考虑,SQL Server使用下面的算法更新统计信息
    2012-08-08

最新评论