您的位置:首页 > 数据库

sqlserver 数据分页 多个主键

2015-11-16 13:53 351 查看
在sqlserver中,数据库的分页一般结合top 和 not in 来实现,但这必须是表中只有一个主键,如果有多个主键该怎么做呢

现在有一个表A

里面有字段

name

schoolyear

text

其中name 和 schoolyear为主键

如果要查询 pagesize 条数据,第 page 页

解决方案:

用row_number()函数来实现

SELECT TOP pagesize * FROM

(SELECT ROW_NUMBER() OVER (ORDER BY name) AS RowNo,* FROM A)

WHERE RowNo > (page - 1) * pagesize

这种方法的思路:

ROW_NUMBER() 可以生成一个顺序的行号,OVER (ORDER BY name) 是根据name来排行号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: