2013-05-25 5 views
0

У меня есть таблица, состоящая из 150 записей в ней и аналогичных 150 строк, но теперь я хочу сохранить только первые 10 верхних строк и удалить остальная репозиция строк, поэтому общая сумма 10 строк должна быть там, пожалуйста, сообщите, как этого достичь, я использую оракул в качестве базы данных.Удаление всех строк, содержащих только первые 10 строк таблицы

+0

Что именно вы имеете в виду «первые 10 верхних рядов»? У вас есть столбец, значения которого определяют ранжирование? –

+0

@FrankSchmitt Нет, его ничего подобного на самом деле я выполняю некоторую операцию, в которой мне нужно всего 10 записей и не более 10 записей. –

+2

Определите «первые 10 лучших строк». В реляционной таблице нет такой вещи, как «первая строка». –

ответ

0

У вас может быть столбец, который поддерживает номер. строк в таблице и сформировать инструкцию SQL, командующую удаление строк, имеющих счетчик нет. больше 10.

+0

не могли бы вы отправить запрос, чтобы получить больше, чтобы сохранить первые десять записей и удалить оставшиеся строки –

+0

см. Запрос, отправленный Фрэнком Шмиттом. –

8

Вы можете использовать подзапрос с ROWID, чтобы идентифицировать записи, чтобы:

delete from mytab where rowid not in 
    (select rowid from mytab where rownum < 11); 

RowNum является псевдо-столбец Oracle для нумерации строк в результирующий набор - внутренний запрос использует его ограничьте количество результатов до 10.

Смежные вопросы