Подобные вопросы были заданы несколько раз. Из того, что я мог найти, они были либо специфичны для конкретной реализации SQL (Oracle, SQL Server и т. Д.), Либо полагались на временную таблицу (где результат был первоначально скопирован).Как удалить повторяющиеся строки из таблицы без уникального ключа только с «простым» SQL и без временных таблиц?
Интересно, является ли их независимым от платформы чистым решением DML (всего одно заявление DELETE
).
Образец данных: Таблица A с одним полем.
---------
|account|
|-------|
| A22 |
| A33 |
| A44 |
| A22 |
| A55 |
| A44 |
---------
Следующая SQL Fiddle показывает Oracle-конкретное решение, основанное на ROWID
псевдо-колонки. Он не будет работать для какой-либо другой базы данных и показан здесь как пример.
В каких СУБД вы хотите работать? – Rachcha
Я не думаю, что есть независимый от базы данных способ написать это. –
Я хочу, чтобы он работал над всеми (или, насколько это возможно, реляционными базами данных). –