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 update 多表关联更新的实现代码

    SQL update 多表关联更新的实现代码

    这篇文章主要介绍了SQL update 多表关联更新的实现代码,需要的朋友可以参考下
    2017-09-09
  • SQL Server 索引和视图详解

    SQL Server 索引和视图详解

    这篇文章主要为大家介绍了SQLServer索引和视图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • sql not in 与not exists使用中的细微差别

    sql not in 与not exists使用中的细微差别

    用的时候我们只注重查询的效率,但却往往会忽略一下比较细小的区别
    2013-02-02
  • mssql SA帐号的改名和删除

    mssql SA帐号的改名和删除

    众所周知,在M$sql中有个绝对是网络安全中的隐患的帐号sa,系统管理员 (sa),默认情况下,它指派给固定服务器角色 sysadmin,并不能进行更改。这个sa一般情况下是既不可以更改名称,也不可以删除,呵呵,有点鸡肋的味道,弃置可惜,食之无味。装上sql2000之后,感觉怪怪的,放着这个后门在,始终都不放心,担心有一天被人破出密码,那偶的电脑不就完拉。可能你回说设个强壮点的密码,这个办法是可行,可不是长久之记,所谓斩草要除根,要是把sa给删拉就不用担心那些"黑客"暴力破解拉。
    2008-04-04
  • SQL Server复制功能要避开缺陷的干扰小结

    SQL Server复制功能要避开缺陷的干扰小结

    SQL Server具有强大的复制功能,除了将数据和数据库对象从一个数据库复制并准确分发的另一个数据库中,还要实行数据库之间的同步。
    2011-03-03
  • 没有SQL Server数据库时如何打开.MDF文件

    没有SQL Server数据库时如何打开.MDF文件

    本文主要介绍了在安装有Visual Studio 2005或以上的版本的前提下,没有安装SQL Server数据库也可以打开.MDF数据库文件的方法,需要的朋友可以参考下
    2015-08-08
  • SQL Server误区30日谈 第6天 有关NULL位图的三个误区

    SQL Server误区30日谈 第6天 有关NULL位图的三个误区

    NULL位图是为了确定行中的哪一列是NULL值,哪一列不是。这样做的目的是当Select语句后包含存在NULL值的列时,避免了存储引擎去读所有的行来查看是否是NULL,从而提升了性能
    2013-01-01
  • sqlserver 多表查询不同数据库服务器上的表

    sqlserver 多表查询不同数据库服务器上的表

    sqlserver中多表查询不同数据库服务器上的表的实现方法,需要的朋友可以参考下
    2012-04-04
  • SQL Server 2008的逻辑查询处理步骤

    SQL Server 2008的逻辑查询处理步骤

    我想大家对《SQL Server 2005技术内幕T-SQL查询》一书可能都比较熟悉,博文组织翻译的,作者是SQL Server方面的MVP Kalen .
    2009-06-06
  • SQL Server 2012 安装与启动图文教程

    SQL Server 2012 安装与启动图文教程

    本文通过图文并茂的形式给大家介绍了sqlserver2012的安装步骤,本文分步骤给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2016-11-11

最新评论