3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
SELECT *
SQLServer 2005+
SELECT col1, col2 FROM ( SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum FROM MyTable) AS MyDerivedTableWHERE MyDerivedTable.RowNum BETWEEN @startRow AND @endRow
SQLServer 2000

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
TOP (25) ... WHERE Key > @last_key ORDER BY Key
ROW_NUMBER
BETWEEN
SELECT *FROM MyTable ORDER BY OrderingColumn ASC OFFSET 50 ROWS FETCH NEXT 25 ROWS ONLY

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
SELECT * FROM( SELECT TOP (@pageSize) * FROM ( SELECT TOP (@pageNumber * @pageSize) * FROM tableName ORDER BY columnName ASC ) AS t1 ORDER BY columnName DESC) AS t2 ORDER BY columnName ASC
;WITH results AS ( SELECT rowNo = ROW_NUMBER() OVER( ORDER BY columnName ASC ) , * FROM tableName ) SELECT * FROM resultsWHERE rowNo between (@pageNumber-1)*@pageSize+1 and @pageNumber*@pageSize
添加回答
舉報(bào)