![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При удалении дублир-щих записей удал-ся ВСЕ. А как оставить одну? [D6, Paradox]
Геннадий © (2002-11-12 21:42:00)В SQL запросе можно добавить какое-то слово (не помню какое) и тогда все дублирующиеся записи исчезнут. А как выполнить (а точнее, составить) запрос, в котором вместо нескольких повторяющихся записей будет лишь одна? То есть из таблицы:
Иванов
Иванов
Петров
Иванов
Нужно получить:
Иванов
Петров
Подскажите, пожалуйста.
Andriano (2002-11-13 08:25:00) [21]Чего-то вы того...
SELECT DISTINCT возвращает не повторяющиеся значения, т.е. всех по одному. Поэтому это и было нужно.
Но как с помощью SELECT DISTINCT удалить все повторяющиеся - никак.
kaif (2002-11-13 03:51:00) [22]Это невозможно.
Поэтому те, кто использует SQL должен приложить все усилия к тому, чтобы дубликатов не было с самого начала.
Или же приходится писать процедуры обхода, но это уже не совсем SQL идеология. И даже в этом случае нужно иметь хоть какой-то уникальный ключ (ID), то есть не должно быть совершенно одинаковыхзаписей. В Paradox, правда (так как это не SQL-база) возможно даже в этом случае удалить дубликаты, но разумеется, только путем обхода.
Есть еще вариант создать другую таблицу, сделать SELECT DISTINCT и результат в нее просто переписать, а прежнюю таблицу уничтожить. Я бы так сделал, так как это быстрее всего.
EDDI (2002-11-12 23:40:00) [23]Удалено модератором
Геннадий (2002-11-12 22:26:00) [24]MsGuns © (12.11.02 21:53)
SELECT DISTINCT ...
Вот именно так дубли и удаляются, а мне нужно один оставить...
MsGuns (2002-11-12 21:53:00) [25]SELECT DISTINCT ...
Anatoly Podgoretsky (2002-11-12 21:51:00) [26]Не использовать SQL