SQL Server выбирает следующий x количество строк с предложением where - PullRequest
0 голосов
/ 10 декабря 2018

Microsoft SQL Server 2008 R2

Я выполняю большой запрос выбора SQL, выполнение которого может занять несколько часов.Поэтому я пытаюсь разбить результаты запроса на меньшие множества.

например, сначала вернуть результаты 1-10 000, затем 10,001 - 20000 и т. Д.

Я использовал приведенный ниже код, но он выдал ошибку

SELECT * 
FROM PP_ConsolidatedSalesView
WHERE financial_period = '2018-11'
ORDER BY id
OFFSET 10000 ROWS
FETCH NEXT 10000 ROWS ONLY

Я используюцикл для динамического изменения смещения и получения следующих значений.

Сообщение об ошибке:

Неверный синтаксис рядом с OFFSET

Есть ли у кого-нибудьидея почему?И есть ли альтернативное решение?

1 Ответ

0 голосов
/ 10 декабря 2018

Можете ли вы подтвердить уровень совместимости базы данных.Смещение присутствует в SQL Server 2012. Если база данных находится в режиме совместимости 2008, ключевое слово недоступно.

Вы можете проверить это, как показано ниже:

USE AdventureWorks2012;  
 GO  

 SELECT compatibility_level  
 FROM sys.databases WHERE name = 'AdventureWorks2012';  
 GO

Подробнее здесь: Неверный синтаксис рядом с командой OFFSET

...