Ответ 1
Вот два способа сделать это.
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
Возможный дубликат:
SQL - Как удалить повторяющиеся строки?
Пример: это моя таблица:
SiteKey, Name, City
SiteKey автоматически увеличивается, имя отличается, но несколько раз у Сайта будет один город.
Пример:
1, A , CityA
2, B, CityB
3, C, CityA
4, D, CityF
поэтому мне нужно удалить строки 3 и сохранить только строки 1,2,4.
его на SQL 2005 и выше.
спасибо за помощь.
Вот два способа сделать это.
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
Это стандартный SQL
DELETE
mytable
WHERE
SiteKey NOT IN
(
SELECT
MIN(SiteKey)
FROM
Mytable
GROUP BY
City
) --Don't need 'KeepMe'
Затем добавьте единственное ограничение
ALTER TABLE MyTable WITH CHECK ADD
CONSTRAINT UQ_MyTable_City UNIQUE (City)