Вы отметили вопрос MySQL. Но вы использовали излишне загадочный синтаксис. MySQL поддерживает обе эти конструкции:
ROW_NUMBER() OVER ()
ROW_NUMBER() OVER (ORDER BY NULL)
В обоих случаях вы говорите: «Мне все равно, каков порядок». Очень важное следствие:"Мне все равно, если результат будет одинаковым при двух разных прогонах одного и того же запроса.
Если честно, ROW_NUMBER()
не гарантированно вернет тот же результат, когда ключи ORDER BY
одинаковы. Почему? Потому что SQL таблицы и наборы результатов представляют неупорядоченные наборы. Не существует порядка по умолчанию для возврата.
Ваш конкретный синтаксис является обходным решением для SQL Сервера, поскольку для этой базы данных требуется условие ORDER BY
для ROW_NUMBER()
и SQL Сервер не допускает константы в ORDER BY
.
Конечно, точно те же условия выполняются в этой базе данных - или в любой другой базе данных.
Простой ответ: Нет, вы не можете предполагать, что результат будет в том же порядке, если вы снова выполните тот же запрос.