以前使用其它数据库在web中进行数据分页时,一直没有太好的方法,不过幸好SQL Server2005提供了一个函数可以解决分页问题。
这个函数是ROW_NUMBER(),它可以返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
语法是 ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] < order_by_clause> )
如返回adventureworks.production.workorder表的记录(带行号)
SELECT workorderid,productid, ROW_NUMBER() OVER(order by productid desc) as row FROM adventureworks.production.workorder
如果要查询adventureworks.production.workorder表中的第20到30条记录,可使用
SELECT * FROM(SELECT workorderid,productid, ROW_NUMBER() OVER(order by productid desc) as row FROM adventureworks.production.workorder) a WHERE row BETWEEN 20 AND 30
这个函数是ROW_NUMBER(),它可以返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
语法是 ROW_NUMBER ( ) OVER ( [ <partition_by_clause> ] < order_by_clause> )
如返回adventureworks.production.workorder表的记录(带行号)
SELECT workorderid,productid, ROW_NUMBER() OVER(order by productid desc) as row FROM adventureworks.production.workorder
如果要查询adventureworks.production.workorder表中的第20到30条记录,可使用
SELECT * FROM(SELECT workorderid,productid, ROW_NUMBER() OVER(order by productid desc) as row FROM adventureworks.production.workorder) a WHERE row BETWEEN 20 AND 30
1141

被折叠的 条评论
为什么被折叠?



