-2

可能重复:
删除重复的 SQL 记录

我想从表中删除重复的行

ID      uID     SID      USID
------------------------------
4391    007 Flight  ADM007
4392    007 Enquiry ADM007
6723    007 Flight  ADM007
6724    007 Enquiry ADM007
6725    008 Flight  ADM008
6726    008 Enquiry ADM008
4393    008 Flight  ADM008
4394    008 Enquiry ADM008
4395    009 Flight  ADM009
4396    009 Enquiry ADM009
6727    009 Flight  ADM009
6728    009 Enquiry ADM009

我只想保留

4391    007 Flight  ADM007
4392    007 Enquiry ADM007
6725    008 Flight  ADM008
6726    008 Enquiry ADM008
4395    009 Flight  ADM009
4396    009 Enquiry ADM009

请给我建议

4

1 回答 1

1

您可以使用 CTE。

with C as
(
  select row_number() over(partition by uID, SID, USID order by ID) as rn
  from YourTable
)
delete from C
where rn > 1

YourTable 中剩下的行将是

ID          uID         SID        USID
----------- ----------- ---------- ----------
4391        7           Flight     ADM007
4392        7           Enquiry    ADM007
4393        8           Flight     ADM008
4394        8           Enquiry    ADM008
4395        9           Flight     ADM009
4396        9           Enquiry    ADM009

不完全是您正在寻找的东西,但如果没有另一列可供订购,它就可以得到。

于 2012-10-26T06:05:58.197 回答