我有一张桌子,我正在尝试更新。在我的表中,如果列有重复,则将其与其匹配组合在一起。其中一个文档是原文。我需要更新我的表以使组ID与原始文档相同。因此,如果所有文档属于同一组,则所有文档必须具有相同的统一标题。例如OCR0000000006,OCR0000000008都有统一标题06000146.pdf。
以下是我的表格示例:
DOCID Duplicate_Group Duplicate_Principal Duplicate_Similarity Unified_Title
OCR0000000001 OCR0000000001 Yes 100 06000093.pdf
OCR0000000002 No 0 06000110.pdf
OCR0000000003 OCR0000009554 No 94 06000847.pdf
OCR0000000004 OCR0000000006 No 95 06000117.pdf
OCR0000000005 No 0 06000849.pdf
OCR0000000006 OCR0000000006 Yesn 100 06000146.pdf
OCR0000000007 No 0 06000852.pdf
OCR0000000008 OCR0000000006 No 93 06000175.pdf
这是我上次尝试过的,这给了我“Subquery返回的值超过1”。错误。我还能够更新所有原始文档,但不能更新具有适当值的重复文档。
update tt
set tt.Textual_Near_Duplicate_Group = (select unified_title from #tempsquirrel tt
where tt.Textual_Near_Duplicate_Group in (select yy.docid from #tempballs yy) and Textual_Near_Duplicate_Principal = 'yes')
from #tempsquirrel tt
where tt.Textual_Near_Duplicate_Group in (select yy.docid from #tempballs yy)
答案 0 :(得分:0)
如果您获得的结果是预期的,但只是有多个值,则可以在子查询中使用GROUP BY或DISTINCT返回多个记录以删除重复的行。
该错误可能是由于它试图在tt.Textual_Near_Duplicate_Group的赋值中插入一个值
就像是:
set tt.Textual_Near_Duplicate_Group = (select unified_title from #tempsquirrel tt
where tt.Textual_Near_Duplicate_Group in (select yy.docid from #tempballs yy) and Textual_Near_Duplicate_Principal = 'yes' GROUP BY yy.docid)