У меня есть запрос T-SQL к таблице, где мне нужна вершинная строка. В MySQL это работает так, как ожидалось, но в SQL Server я получаю разные возвращенные данные, что довольно озадачивает.Ключевое слово SQL Server TOP возвращает разные результаты
Я приложил три снимка экрана: 1 из таблицы, 1 из данных, возвращенных при просмотре только 10 верхних строк и 1 из данных, возвращаемых при просмотре 1000 строк. Вы заметите, что самая верхняя строка содержит различную информацию для столбца между двумя запросами.
Единственная разница в запросе, являющемся значением счета ключевого слова TOP
. В этой таблице содержится 7 строк данных. Результат с Top 1000
содержит правильный порядок возвращаемых строк. Что тут происходит?
Почему SQL Server меняет порядок возвращаемых строк в зависимости от значения count ключевого слова TOP
? Может ли кто-нибудь объяснить или предоставить способ сохранить это соответствие независимо от того, сколько строк возвращается?
Это называется недетерминирующим заказом. Вам нужно добавить тай-брейк, I.e. порядок по номеру товара в конце. –