首页 > 数据库 > SQL Server > 正文

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

2024-08-31 01:03:10
字体:
来源:转载
供稿:网友

本文通过一个例子介绍了SQL Server数据库中删除数据集中的重复数据的操作过程,需要的朋友可以参考下

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

例子如下:

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

 

  1. declare @InvoiceListMaster table ( ID int identity primary key ,  
  2.  
  3. companyName Nchar(20),  
  4.  
  5. invoiceNumber int,  
  6.  
  7. CustomerNumber int,  
  8.  
  9. rmaNumber int )  
  10.  
  11. insert @InvoiceListMaster  
  12.  
  13. select N'华为', 1001,100,200  
  14.  
  15. union all 
  16.  
  17. select N'华为', 1001,100,300  
  18.  
  19. union all 
  20.  
  21. select N'华为', 1001,100,301  
  22.  
  23. union all 
  24.  
  25. select N'中兴', 1002, 200,1  
  26.  
  27. union all 
  28.  
  29. select N'中兴', 1002, 200,2  
  30.  
  31. select * from @InvoiceListMaster  
  32.  
  33. DELETE A  
  34.  
  35. from (  
  36.  
  37. select rown = ROW_NUMBER( )over( partition by companyname,  
  38.  
  39. invoicenumber,  
  40.  
  41. customerNumber  
  42.  
  43. order by companyname,  
  44.  
  45. invoicenumber,  
  46.  
  47. customerNumber ),  
  48.  
  49. companyname,  
  50.  
  51. invoicenumber,  
  52.  
  53. customerNumber  
  54.  
  55. from @InvoiceListMaster )a  
  56.  
  57. where exists ( select 1  
  58.  
  59. from ( select rown = ROW_NUMBER( )over( partition by companyname,  
  60.  
  61. invoicenumber,  
  62.  
  63. customerNumber  
  64.  
  65. order by companyname,  
  66.  
  67. invoicenumber,  
  68.  
  69. customerNumber ),  
  70.  
  71. companyname,  
  72.  
  73. invoicenumber,  
  74.  
  75. customerNumber  
  76.  
  77. from @InvoiceListMaster ) b  
  78.  
  79. where b.companyName = a.companyName  
  80.  
  81. and b.invoiceNumber = a.invoiceNumber  
  82.  
  83. and b.CustomerNumber = a.CustomerNumber  
  84.  
  85. and a.rown > b.rown  
  86.  
  87. )  
  88.  
  89. select * from @InvoiceListMaster  

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表