32 lines
		
	
	
		
			676 B
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			676 B
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
| declare @ld as table
 | |
| (
 | |
| 	DocID int,
 | |
| 	DocRank int
 | |
| )
 | |
| insert into @ld
 | |
| select DOCid, dense_rank() OVER(ORDER BY DOCCONTENT) AS DocRank
 | |
|  from documents
 | |
|  where libtitle != ''
 | |
|  
 | |
|  declare @mld as table
 | |
| (
 | |
| 	DocRank int primary key,
 | |
| 	MinDocID int
 | |
| )
 | |
| insert into @mld
 | |
| select DocRank, min(DocID) MinDocID from @ld Group by DocRank
 | |
| 
 | |
| declare @trans as table
 | |
| (
 | |
| 	DocID int primary key,
 | |
| 	MinDocID int
 | |
| )
 | |
| Insert into @Trans
 | |
| Select DocID,MinDocID from @ld ld
 | |
| Join @mld mld on mld.docrank = ld.docrank
 | |
| where MinDocID != DocID
 | |
| order by ld.DocRank
 | |
| Update EE set DocID = MinDocID from entries EE
 | |
| Join @trans TT on EE.DocID = TT.DocID
 | |
| 
 | |
| Delete from Documents where DocID Not in (Select DocID From Entries) |