从SQL Server 2008中的数据库中删除重复的条目

WiX*_*XeY 1 sql sql-server sql-server-2008

我使用的是SQL Server 2008R2,我有下表名为Emps

ID      Name      Title   
 1      XYZ       Manager
 2      ABC       CEO
 3      LMP       Clerk
 4      XYZ       Manager
 5      XYZ       Manager
Run Code Online (Sandbox Code Playgroud)

行1,4和5中的数据是相同的,现在我想要的是只保留一个条目并删除所有其他存在的重复记录,我应该提到的一件事是我的数据已插入数据库,我必须删除重复数据.请指导我有什么解决方案.

Dev*_*art 8

试试这个 -

DECLARE @temp TABLE
(
      ID INT IDENTITY(1,1)
    , Name VARCHAR(10)
    , Title VARCHAR(10)
)

INSERT INTO @temp (Name, Title)
VALUES 
    ('XYZ', 'Manager'),
    ('ABC', 'CEO'),
    ('LMP', 'Clerk'),
    ('XYZ', 'Manager'),
    ('XYZ', 'Manager')

DELETE FROM t
FROM (
    SELECT 
          Name
        , Title
        , rn = ROW_NUMBER() OVER (PARTITION BY Name, Title ORDER BY 1/0) 
    FROM @temp
) t
WHERE rn > 1

SELECT * 
FROM @temp
Run Code Online (Sandbox Code Playgroud)

查询费用 -

在此输入图像描述

输出 -

ID          Name       Title
----------- ---------- ----------
2           ABC        CEO
3           LMP        Clerk
4           XYZ        Manager
Run Code Online (Sandbox Code Playgroud)


jue*_*n d 7

delete from emps
where id not in
(
  select min(id) from emps
  group by name, title
)
Run Code Online (Sandbox Code Playgroud)