Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Stephan
Зарегистрирован: 01.02.2003 Сообщения: 1
|
Добавлено: Сб Фев 01 2003 00:34 Заголовок сообщения: Как одной коммандой DELETE удалить все повторяющиеся записи, и сделать таблицу уникальной? |
|
|
дана таблица, с двумя столбцами.Без каких либо ограничений над столбцами. В таблице есть повторяющиеся записи.Как одной коммандой DELETE удалить все повторяющиеся записи, и сделать таблицу уникальной?
исходный нужно А | В А | В -------- ---------- 1|1 1|1 2|3 2|3 1|1 3|4 3|4 1|1 |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Фев 03 2003 14:25 Заголовок сообщения: А нельзя без DELETE? То есть нечто вроде SELECT INTO ... FROM (SELECT SELECT DISTINCT ...) или что-то аналогичное в две команды |
|
|
- |
|
Вернуться к началу |
|
|
Zero Гость
|
Добавлено: Вт Фев 04 2003 20:08 Заголовок сообщения: Re: Как одной коммандой DELETE удалить все повторяющиеся записи, и сделать таблицу уникальной? |
|
|
Для Oracle:
drop table table_test; create table table_test (a varchar2(1) not null, b varchar2(1) not null); insert into table_test(a, b) values (1, 1); insert into table_test(a, b) values (2, 3); insert into table_test(a, b) values (4, ; insert into table_test(a, b) values (1, 1); insert into table_test(a, b) values (5, 9); insert into table_test(a, b) values (4, ; insert into table_test(a, b) values (1, 1); insert into table_test(a, b) values (2, 3); insert into table_test(a, b) values (5, 9); commit; select * from table_test; delete table_test where rowid not in ( select min(rowid) from table_test t group by a, b ); commit; select * from table_test |
|
Вернуться к началу |
|
|
Zero Гость
|
Добавлено: Вт Фев 04 2003 20:19 Заголовок сообщения: Re: Как одной коммандой DELETE удалить все повторяющиеся записи, и сделать таблицу уникальной? |
|
|
Да, забыл, создай уникальный ключ
alter table table_test add constraint UC_TT_A_B unique (a, b);
Только первым полем поставь то, по которому в большинстве запросов в условии поиска обязательно будет ограничение. По крайней мере так в Oracle |
|
Вернуться к началу |
|
|
fox_
Зарегистрирован: 12.02.2003 Сообщения: 5
|
Добавлено: Ср Фев 12 2003 15:56 Заголовок сообщения: ага, одна команда Delete..... :) |
|
|
ага, одна команда Delete..... |
|
Вернуться к началу |
|
|
fox_
Зарегистрирован: 12.02.2003 Сообщения: 5
|
Добавлено: Ср Фев 12 2003 15:59 Заголовок сообщения: никак |
|
|
командой delete никак. запрос select с distinct. |
|
Вернуться к началу |
|
|
|