重複データレコードの行を削除するには、複数の重複レコードを削除します。

ブログ、Insus.NETは、処理機能は、レコードを複製共有しています。このような「として、重複データレコードに行を削除https://www.cnblogs.com/insus/p/10890148.html

今日まで、動的なストアドプロシージャにこの適応。将来は、どちらかのテーブルのためのものであってもよいです。

 

ONのSET ANSI_NULLS 
GO 
ON SET QUOTED_IDENTIFIER 
GO
 - ======================================== ===== 
- 著者:Insus.NET
 -ブログます。https:// insus.cnblogs.com 
-作成日:2019年 - 05 - 31 
-更新日:2019年 - 05 - 31 
- 説明:删除多个重复记录
 - ============================================ = 
PROCEDURE [DBO] [usp_Delete_Multiple_Duplicate_Record](CREATE。
    @TABLE_NAME SYSNAME、
    @Refer_Column_lists NVARCHAR(MAX)を - ' [A]、[B]、[C] [
AS 
BEGIN     
    DECLAREの@queryのNVARCHAR(MAX) = Nを'
     ; cte_temp_table(rank_numと、' + @Refer_Column_lists + ' 
    AS(
       ROW_NUMBER(SELECT)BY OVER(PARTITION ' + @Refer_Column_lists + ' BY ORDER ' + @Refer_Column_lists +を')rank_num、AS ' + @Refer_Column_lists + ' 
       FROM ' + + @TABLE_NAME ' 
    cte_temp_table WHERE rank_num FROM DELETE > 1 "
 
END
ソースコード

 

デモ:

 

IF  OBJECT_ID' tempdb.dbo。#パートは'IS  NOT  NULL  のDROP  TABLE #Part 

CREATE  TABLEは#Part(
     [ ID ]  INT [ アイテム]  NVARCHAR40 
GO 
INSERT  INTO #Part([ ID ][ 項目]VALUES 23394' I32-GG443-QT0098-0001 ' )、 (45008
'I38-AA321-WS0098-0506'),
(14350,'K38-12321-5456UD-3493'),
(64582,'872-RTDE3-Q459PW-2323'),
(23545,'098-SSSS1-WS0098-5526'),
(80075,'B78-F1H2Y-5456UD-2530'),
(53567,'PO0-7G7G7-JJY098-0077'),
(44349,'54F-ART43-6545NN-2514'),
(36574,'X3C-SDEWE-3ER808-8764'),
(36574,'RVC-43ASE-H43QWW-9753'),
(14350,'K38-12321-5456UD-3493'),
(64582,'872-RTDE3-Q459PW-2323'),
(80075,'B78-F1H2Y-5456UD-2530'),
(53567,'PO0-7G7G7-JJY098-0077'),
(44349,'54F-ART43-6545NN-2514'),
(44349,'54F-ART43-6545NN-2514'),
(36574,'X3C-SDEWE-3ER808-8764')
GO


EXECUTE [dbo].[usp_Delete_Multiple_Duplicate_Record] #Part,'[ID],[Item]'

SELECT * FROM #Part
Source Code

 

おすすめ

転載: www.cnblogs.com/insus/p/10955759.html