Использование ROWNUM в Oracle: примеры, объяснение и руководство по использованию
Rownum в Oracle - это псевдостолбец, который автоматически присваивает каждой строке результатов запроса уникальное число. Это полезно при необходимости ограничить количество возвращаемых строк из запроса или нумеровать строки в результирующем наборе.
Примеры кода:
Пример 1: Вывод 10 строк из таблицы "employees" с использованием rownum:
SELECT * FROM employees WHERE rownum <= 10;
В этом примере будут выбраны первые 10 строк из таблицы "employees".
Пример 2: Вывод строк с нумерацией:
SELECT rownum, employee_id, first_name, last_name FROM employees;
В этом примере каждой строке будет присвоен номер, начиная с 1, и будут выбраны столбцы "employee_id", "first_name" и "last_name" из таблицы "employees".
Пример 3: Вывод строк с нумерацией с использованием подзапроса:
SELECT rownum, employee_id, first_name, last_name
FROM (SELECT * FROM employees WHERE department_id = 50);
В этом примере будет выполнен подзапрос для выборки строк из таблицы "employees" с условием department_id = 50. Затем каждой строке из результата подзапроса будет присвоен номер и будут выбраны столбцы "employee_id", "first_name" и "last_name".
Rownum имеет одну особенность - он нумерует строки по порядку до фильтрации. Это значит, что если вы добавите условие rownum > 5, то строки с номерами от 6 и выше не будут возвращены. Если вам требуется правильная нумерация после фильтрации, вы можете использовать подзапросы или аналитические функции, такие как ROW_NUMBER().