ROW_NUMBER() 分页语句,从SQL SERVER 2005 后才开始横空出世?


WITH tbTmp_CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY ArticleID asc) AS RowNumber,* FROM XXX_Article
)
SELECT ArticleID,Title
FROM tbTmp_CTE
WHERE RowNumber BETWEEN 1 AND 10;

首页用WITH创建个临时命名的结果集(这些结果集称为公用表表达式 (CTE)),
对表中的每行先排序再设置其RowNumber数据,然后通过select查询,
通过where设置查询条件来到达分页的目的。