Извлечь определенные строки из таблицы в Oracle

Я хочу написать запрос, который доставит мне первые и последние 3 записи из таблицы

Ниже приведена подробная информация о таблице

select * from employee_src

Извлечь определенные строки из таблицы в Oracle

Теперь, чтобы получить результат выше, я использую запрос ниже

select fname,lname,ssn,salary,dno from employee_src where rownum <=3
union all
select fname,lname,ssn,salary,dno  from (select fname,lname,ssn,salary,dno from employee_src order by rownum desc) where rownum <=3

При выполнении этого запроса я получаю следующий результат

Извлечь определенные строки из таблицы в Oracle

Хотя я получаю первые 3 и последние 3 строки, но последние 3 строки находятся не в том порядке, как в исходной таблице. Как это исправить.

Столы не имеют порядка. Они представляют собой наборы неупорядоченный. Следовательно, ваше наблюдение не имеет смысла. Если вам нужен набор результатов в определенном порядке, вам нужно добавить предложение ORDER BY к самому внешнему SELECT в запросе.

Gordon Linoff 02.05.2018 12:35

Я могу только повторить комментарии @ GordonLinoff. Таблицы не упорядочены (данные могут быть каким-то образом упорядочены во внутреннем хранилище, но вы не должны зависеть от этого), если вы не примените к ним какой-либо порядок. Пока вы не примените порядок, первый и последний не имеют смысла. Я не могу определить заказ по вашим исходным данным, но, возможно, мне что-то не хватает.

David Faber 03.05.2018 15:05
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
128
1

Ответы 1

Попробуй это.

select * from (select  * from employee_src order by rownum Asc) where rownum <= 3
union all 
select *, from ( select  *  from employee_src from dual order by rownum desc
                    ) as employee_src_last3 
                    where rownum <= 3

Попробуй...

Другие вопросы по теме