在 SQL Server 中使用相关子查询删除重复记录

在本文中,将介绍如何删除 SQL Server 中的重复记录。 在相关子查询中,执行第一个外部查询,该结果由内部子查询用于其执行,然后结果再次由外部查询使用以获得最终结果。

示例

创建测试表

CREATE TABLE [dbo].[Student1Details](

      [ID] [int] NOT NULL,

      [Name] [varchar](50) NULL,

      [Branch] [varchar](10) NULL,

      [Location] [varchar](10) NULL,

 CONSTRAINT [PK_Student1] PRIMARY KEY CLUSTERED

(

      [ID] ASC

)

) ON [PRIMARY]

Insert some values

INSERT INTO Student1Details

SELECT 1, 'Nitin', 'CS','IND' UNION ALL

SELECT 2, 'Ravi', 'EI','ENG' UNION ALL

SELECT 3, 'Tim', 'ME','US' UNION ALL

SELECT 4, 'Rick', 'ME','IND' UNION ALL

SELECT 5, 'Rakesh', 'CS','ABD' UNION ALL

SELECT 6, 'Tarun', 'ME','IND' UNION ALL

SELECT 7,'Raushan','IT','IND' UNION ALL

SELECT 8,'Aman','EC','US'

SELECT * FROM Student1Details

SQL Server删除表中重复的记录:

select * from Student1Details S1

where S1.ID=(select max(ID) from Student1Details S2

where S1.Location=S2.Location)

GO

-- 删除重复记录

delete Student1Details where ID< (select max(ID) from Student1Details S2

where S2.Location = Student1Details.Location)

GO

SELECT * FROM Student1Details

GO
日期:2020-06-02 22:18:05 来源:oir作者:oir