2017-02-23 18 views
0

Я хочу выбрать данные из своего представления со смещением, чтобы сделать разбивку на страницы, а также упорядочить по дате регистрации.Правильный способ сделать выбор со смещением (pagination) query в SQL Server 2008 R2

У меня есть пример кода ниже.

SELECT student_id,student_name 
FROM student 
WHERE student_id IN(
       SELECT TOP 15 student_id 
       FROM student(
         SELECT ROW_NUMBER() OVER (ORDER BY register_date_time DESC) AS rowNo,student_id 
         FROM student 
         ) tb_pagination WHERE rowNo > 30 
       ) 

Мой код работает правильно, но он слишком медленный для ответа от запроса сервера к клиенту.

Может ли кто-нибудь сказать мне, как сделать это лучше?

+0

[. Эта статья на 2000 и 2005 версии, должны работать в 2008 году, а] (http://www.4guysfromrolla.com/webtech/042606-1.shtml) –

ответ

0

Попробуйте это:

SELECT student_id,student_name 
FROM (
     SELECT ROW_NUMBER() over (ORDER BY register_date_time DESC) AS rowNo, 
     student_id, 
     student_name 
     FROM student 
    ) tb_pagination 
WHERE rowNo > 30 
AND rowNo < 45 
Смежные вопросы