gpt4 book ai didi

sql-server - 选择/删除重复项

转载 作者:行者123 更新时间:2023-12-04 02:08:13 26 4
gpt4 key购买 nike

我有下表CatItemLink,其中包含记录:

ID                                      CatID                                   ItemID
--------------------------------------------------------------------------------------------------------------------
ADBFBEFE-11F4-4CF0-A889-BBC9358CCF57 A411277E-0873-4323-B016-63F4DFA664C2 B66A47DF-A0E3-4D41-88E9-0B0CB27085D7
->E212A458-E5E2-4D77-B618-425082CFD8D2 A411277E-0873-4323-B016-63F4DFA664C2 B66A47DF-A0E3-4D41-88E9-0B0CB27085D7

D071B1C1-7296-4BCA-8AD3-8495704BF679 A411277E-0873-4323-B016-63F4DFA664C2 E288327C-15BF-4B01-BD37-0B6AD5365966
->B4F59516-2D85-4E2A-8FE4-3EDA27C3DA4F A411277E-0873-4323-B016-63F4DFA664C2 E288327C-15BF-4B01-BD37-0B6AD5365966
->F3FB6BA5-79EC-4FC5-899E-24FA9F8DFF25 A411277E-0873-4323-B016-63F4DFA664C2 E288327C-15BF-4B01-BD37-0B6AD5365966

CF3FBD01-4445-4A72-AD1A-BF397970AEFC BFB76F3D-4F06-4200-925D-1968666741A3 E288327C-15BF-4B01-BD37-0B6AD5365966

ID 是一个主键。 [CatID,ItemID] 应该是唯一索引,但 DBO 没有指定该索引。如何删除/选择标记为 -> 的记录,这意味着每个 CatID 将只有一个 ItemID。(ItemID 可以用不同的 CatID 找到,这没问题)。

我有一个使用 SET ROWCOUNT 的解决方案,但我想有一个替代方案。

最佳答案

;WITH x AS 
(
SELECT ID, rn = ROW_NUMBER() OVER
(PARTITION BY CatID, ItemID ORDER BY ID)
FROM dbo.CatItemLink
)
DELETE x WHERE rn > 1;

关于sql-server - 选择/删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9394969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com