Разница между ROWID, ROWNUM и ROW_NUMBER() заключается в следующем:
- ROWID — это псевдостолбец, который возвращает физический адрес строки в базе данных. 14 Он уникально идентифицирует конкретную строку в таблице и остаётся одинаковым, даже если строка обновляется. 4
- ROWNUM — это псевдостолбец, который присваивает уникальный номер строки каждой строке в наборе результатов запроса. 4 Номер строки начинается с 1 для первой строки и увеличивается на 1 для каждой последующей. 4
- ROW_NUMBER() — это аналитическая функция, которая присваивает номер каждой строке в соответствии с её порядком внутри группы строк. 2 Она генерирует последовательность чисел после выполнения операции сортировки по определённому столбцу. 2