TSQL仅删除某些列上的重复行

Ken*_* Le 15 sql t-sql

可能重复:
SQL - 如何删除重复的行?

示例这是我的表:

SiteKey,名称,城市

SiteKey是自动增量,名称不同,但有时2个Sitekey将具有相同的城市.

例:

1, A , CityA
2, B,  CityB
3, C,  CityA
4, D,  CityF
Run Code Online (Sandbox Code Playgroud)

所以我需要删除第3行,并保留1,2,4行.

它在SQL 2005及以上.

谢谢你的帮助.

t-c*_*.dk 13

这有两种方法可以做到.

DELETE t
FROM 
<table> t
WHERE EXISTS 
    (SELECT 1 FROM <table> 
    WHERE t.SiteKey > SiteKey AND t.City = City)


DELETE t
FROM 
<table> t
INNER JOIN <table> t2
ON  t.City = t2.City
AND t.SiteKey > SiteKey
Run Code Online (Sandbox Code Playgroud)