![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление дублирующих записей [FB]
Os © (2006-02-20 09:33:00)Имеем таблицу типа
Id Key Val1 Val2
1 2 3 10
2 2 4 null
3 2 5 null
4 2 3 null
Запись val2 делается для всех одинаковых Key
Update table set val2=10 where Key=2
Как с min затратами оставить только запись в котой Val1 min, а остальные записи удалить
Os (2006-02-20 11:01:00) [1]Обсуждение закрыто. Спасиба за участие. Действительно проще создать уникальный индекс и не допускать создание таких записей.
Johnmen (2006-02-20 11:00:00) [2]>Можна вставить в триггер?
Можна. Но не нужно...
Ты скажи, в чём проблема-то?
>ЮЮ © (20.02.06 10:42) [3]
>> WHERE Val1 <> (SELECT MIN(Val1) FROM Table)
>Не учитывается Key
Ну и что?
Os (2006-02-20 10:57:00) [3]Записи поступают от источника состояния объекта и там возможны различные варианты перехода, и лишние записи необходимо убить, оставив максимальное время отказа.
ЮЮ (2006-02-20 10:53:00) [4]А что по-твонму меньше, 10 или NULL
сорри, не обратил внимание, что c минимальным Val1
> Можна вставить в триггер?
Зачем тогда вставлять записи, которые тут же могут быть убиты триггером? Может тогда делать Update?
Os (2006-02-20 10:50:00) [5]null является признаком для добавления записей
Os (2006-02-20 10:42:00) [6]
> DELETE FROM Table WHERE Val1 <> (SELECT MIN(Val1) FROM Table)
Можна вставить в триггер?
ЮЮ (2006-02-20 10:42:00) [7]
> Как с min затратами оставить только запись в котой Val1
> min,
1 2 3 10
4 2 3 null
А что по-твонму меньше, 10 или NULL
> WHERE Val1 <> (SELECT MIN(Val1) FROM Table)
Не учитывается Key
Johnmen (2006-02-20 10:27:00) [8]
DELETE FROM Table WHERE Val1 <> (SELECT MIN(Val1) FROM Table)