【小5聊】sql server 分页和分组-row_number()和over()、rank()和over()的小区别
创始人
2024-03-12 11:09:32
0

在使用sql server数据库时,分页方式之一会常用到row_number结合over进行重新排序分页

如果需要根据班级分组,分别显示对应班级的排名,rank就是很好的函数

1、row_number()函数

1)为每个分组生成唯一序号,相同值,序号不对,可用于分页

2)函数“ROW_NUMBER”必须有 OVER 子句

row_number() over() as ‘自定义字段’

3)缺点

不适合多语句查询分页,因为这个是全表查询

错误写法:

select top 10 * 
from (
select row_number() 
over(order by t.create_time desc) as rowindex,t.* 
from (select * from domain_table awhere 1=1) t
) new_table
where rowindex>((1-1)*10) and rowindex<=1*10
order by new_table.create_time desc

正确写法

select top 10 *
from (select row_number()
over(order by create_time desc) as rownumber,*
from domain_table) temp_row
where rownumber>((1-1)*10);

2、over()函数

1)order by + 一般是时间字段或者排序字段,必填

2)函数“ROW_NUMBER”必须有包含 ORDER BY 的 OVER 子句

3、rank()函数

1)也是为每个分组生成唯一序号,相同值时,序号相同,可用于排行

2)多用于需要分组并且每个分组有各自从1开始的排序

相关内容

热门资讯

公安部打掉黑灰产犯罪团伙200... 12月25日,公安部在京召开专题新闻发布会,通报公安部和国家金融监督管理总局联合部署开展金融领域“黑...
公安机关打掉金融领域“黑灰产”... 新华社北京12月25日电(记者任沁沁、熊丰)公安部12月25日在京召开新闻发布会,通报今年6月至11...
老年婚介服务引纠纷 成都金牛区... 追求爱情从来不是年轻人的专利,老年人也有权利去追求真爱。不过,不可只抱有美好期许,也要擦亮眼睛。近日...
国家医保局:长护险制度将从试点... 本报讯(中青报·中青网记者 刘昶荣)在日前浙江宁波召开的2025年全国长期护理保险高质量发展大会上,...
公安部发布金融领域“黑灰产”违... 12月25日,公安部在京召开专题新闻发布会,通报公安部和国家金融监督管理总局联合部署开展金融领域“黑...
国家发展改革委:加快推动交通运... 12月25日,国家发展改革委基础设施发展司刊发题为《加快构建现代化基础设施体系》的署名文章。文章指出...
国家发改委:优化收费公路政策 ... 每经AI快讯,据国家发改委官微消息,12月25日,国家发展改革委基础设施发展司发文称,深化重点领域改...
清华大学开展招生宣讲,发布招生... 红星新闻网12月25日讯12月24日,清华大学招生办公室发布声明。 声明称,近日,清华大学招生办接到...
公安部:立案查处金融领域“黑灰... 北京商报讯(记者 岳品瑜 董晗萱)12月25日,公安部召开新闻发布会,通报公安部和国家金融监督管理总...
感知山东| 胶州市开展“法律护... 为不断深化“陪伴成长”全环境立德树人品牌建设,近日,胶州市司法局李哥庄司法所联合镇宣传办,邀请市“蓝...