Если вы работали с Oracle SQL, то наверняка встречали псевдостолбец ROWNUM. Многие разработчики на первых порах думают, что это аналог порядкового номера строки в результате запроса, но не всё так просто. Давайте разберёмся, как он работает и когда его лучше заменить на ROW_NUMBER(). ROWNUM — это число, которое Oracle назначает каждой строке по мере их выборки в запросе. Это не окончательный порядковый номер строки в итоговом результате, а скорее номер, который присваивается в процессе выполнения запроса. 💡 Важно понимать: ROWNUM всегда назначается до сортировки (ORDER BY). Поэтому, если вы попробуете использовать ROWNUM для получения первых N отсортированных записей, результат может быть неожиданным. Чтобы понять, почему ROWNUM ведёт себя именно так, разберём порядок обработки SQL-запроса: 1️⃣ FROM/WHERE — выбираются строки из таблицы и фильтруются условия. 2️⃣ ROWNUM — каждой строке присваивается порядковый номер в том порядке, в котором Oracle их получает. 3️⃣ SELECT — выполняются
Псевдостолбец ROWNUM в Oracle: тонкости и подводные камни
27 февраля 202527 фев 2025
53
2 мин