0 sql sql-server sql-server-2012
有没有更好的方法在SQL服务器中进行分页?
例如,我必须使用以下技术将@skip添加到@take:
;WITH tmp_cte AS (
SELECT ROW_NUMBER() OVER (ORDER BY LastName) AS RowNumber,
LastName,
FirstName
FROM person.Person
WHERE FirstName like '%ad%'
)
SELECT *
FROM tmp_cte
WHERE RowNumber > @skip --10
AND RowNumber <= @Take--20
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法,以便我不必添加跳过?
在SQL 2012中,它非常简单:
SELECT LastName, FirstName
FROM person.Person
WHERE FirstName like '%ad%'
ORDER BY LastName
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)
查看 此链接 以获取其他版本的SQL Server +性能比较.
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |