Недавно я обнаружил, что при использовании «смещения x строк» с помощью команды «только выборка x только строки» и «упорядочить по» элементы с одинаковым значением могут отображаться в другом заказ.с использованием смещенных строк в порядке сортировки изменений T-SQL
Пример:
SELECT * FROM Rows ORDER BY [IntegerField] OFFSET 0 ROWS
Output:
ID IntegerField
1 1
2 1
3 2
Но добавляя выборку следующих 50 строк только
SELECT * FROM Rows ORDER BY [IntegerField] OFFSET 0 ROWS FETCH NEXT 50 ROWS ONLY
Output:
ID IntegerField
2 1
1 1
3 2
В реальной жизни я использую тип данных GUID в качестве идентификатора, так что, возможно, что причина это странное поведение?
может не иметь отношения, но является ли '3 2' строкой опечатки в первом примере или есть ли вставка между двумя примерами? – tschmit007
Если столбцы и/или выражения (выражения), которые вы идентифицируете в своем предложении ORDER BY, не создают уникальные значения для всех строк, тогда все строки, которые имеют одинаковые значения, могут быть возвращены в любом порядке что сервер находит удобнее. Если вы * нуждаетесь в * специальном * заказе, единственный способ гарантировать это - указать это требование заказа в предложении 'ORDER BY'. –
@ tschmit007 спасибо! Это была опечатка с моей стороны. Я редактировал сообщение. – einord