row_number分页使用:
ROW_NUMBER()函数作用就是将select查询到的数据进行排序,每一条数据加一个序号,
简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。
PARTITION BY子句将结果集划分为分区。 ROW_NUMBER()函数分别应用于每个分区,并重新初始化每个分区的行号。PARTITION BY子句是可选的。如果未指定,ROW_NUMBER()函数会将整个结果集视为单个分区。
例如:查询成绩表第2页数据(每页5条数据,按照成绩降序排序)
表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的),
需求:查询成绩表第2页数据(每页5条数据,按照成绩降序排序)
sql脚本: select * from (
select *, row_number() OVER( order by score desc) 排名 from SC
)v
where 排名>(2-1)*5 and 排名<=2*5
这里用到的思想就是 分页查询的思想 在原sql外再套层:
select where 排名>(2-1)*5 and 排名<=2*5是不是就是获取第2页信息纳。
以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!