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) |