Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > сортировка


Автор: ok_computer 16.1.2008, 15:16
необходимо реализовать постраничную навигацию + сортировку по шапке таблицы в MSSQL. 

в MYSQL 

Код

SELECT * FROM table ORDER BY  $order LIMIT $begin, $pnumber//   
$begin – начальная позиция для отображения, $pnumber – кол-во записей на странице

в MSSQL конструкции подобной limit нет:

Код

SELECT TOP $pnumber * FROM table  
WHERE id NOT IN (SELECT TOP $begin id FROM table ORDER BY id) ORDER BY id  

здесь с сортировкой начинаются проблемы, переменную $order использовать нельзя, сортировать можно только по id.
как можно ее решить?

заранее спасибо.

Автор: ok_computer 17.1.2008, 09:48
и все таки будет запрос

Код

SELECT TOP $pnumber * FROM Table 
WHERE id NOT IN (SELECT TOP $begin id FROM Table ORDER BY date_registr, id) ORDER BY date_registr, id 



верной постр. выборкой?
или сортировка только ORDER BY id

Автор: kobra 17.1.2008, 13:41
если сервер 2005, если я правилно понял проблему, поможет ROW_NUMBER

Автор: Akina 17.1.2008, 13:55
Код

Select *
From
(
 Select Top $pnumber *
 From
 (
  Select Top $pnumber+$pbegin *
  From table
  Order By id Asc
 ) 
 Order By id Desc
)
Order By id Asc

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)