выбор SQL-запроса - PullRequest
       10

выбор SQL-запроса

2 голосов
/ 29 марта 2012

Я пытаюсь создать запрос, который будет делать это: скажем, например, у меня есть 100 записей в таблице.У меня есть форма .net, которая вызывает запрос.У меня есть параметр строки запроса pageindex, что-то вроде http://mysite.com? Id = 2 .Теперь я хочу сделать следующее: если id = NULL, то получить 1-й набор записей из этой таблицы с идентификатором от 1 до 20, значит от 1 до 20, если id = 2, то получить 2-й набор recordw из строки 20до 40, если id = 3, то получить 3-й набор записей, то есть записей от 40 до 60, из этой таблицы.
Я хочу знать, возможно ли это.Большое спасибо заранее, Laziale

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Если вы сделаете это, как вы говорите, и идентификаторы в строке от 1 до 100, вы можете сделать

@ Page - номер страницы (на основе 0)

SELECT TOP 20 * FROM MyTable WHERE (ID > @Page*20) ORDER BY ID

Если вы хотите использовать стиль подкачки Ms SQL, а идентификаторы не совпадают, вы можете сделать

WITH NewTable AS (SELECT *, ROW_NUMBER() OVER (ORDER BY ID) AS RowNumber FROM MyTable)
SELECT TOP 20 * FROM NewTable WHERE (RowNumber > @Page*20)

Ссылка: http://msdn.microsoft.com/en-us/library/ms186734.aspx

http://msdn.microsoft.com/en-us/library/ms175972.aspx

0 голосов
/ 29 марта 2012
SELECT col1, col2 
FROM (
    SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum
    FROM MyTable
) AS MyDerivedTable
WHERE MyDerivedTable.RowNum BETWEEN @startRow AND @endRow

взято из Смещение строки в SQL Server , первый результат в Google через очередь поиска "mssql limit offset".

...