Loading

sqlserver 分页查询的写法

sqlserver 2012及以后使用:

SELECT * FROM {TableName}
ORDER BY {OrderBy}
OFFSET 20 ROWS
FETCH NEXT 5 ROWS ONLY

以前使用:

SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY {OrderBy}) AS PagedNumber, {SelectColumns} FROM {TableName} {WhereClause}
) AS u 
WHERE PagedNumber BETWEEN (({PageNumber}-1) * {RowsPerPage} + 1) AND ({PageNumber} * {RowsPerPage})

参考:
https://github.com/ericdc1/Dapper.SimpleCRUD/blob/58fffc5b1eddcbf523ab033c46e9a594f662218a/Dapper.SimpleCRUD/SimpleCRUD.cs#L98
https://stackoverflow.com/questions/9848592/dapper-paging
https://github.com/StackExchange/Dapper/issues/760#issuecomment-298302652

其他数据库:
https://dapper-tutorial.net/zh-CN/knowledge-base/5918384/

posted @ 2020-04-26 23:45  wswind  阅读(580)  评论(0编辑  收藏  举报