养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

SQL SERVER的有哪几种分页方式

时间:2024-11-12 23:31:49

在日常工作中,经常需要解决分页的问题,也是数据库分页(真分页)必须要做的一件事情。发现数据库有多种分页方法

SQL SERVER的有哪几种分页方式

工具/原料

工具:SQLSERVER2017

方法/步骤

1、第一种:ROW_NUMBER()OVER()方式把表中的所有数据都按照一个ROW_NUMBER进行排序,然后查询ROW_NUMBER10到20之间的前十条记录。SELECT*FROM(    SELECT*,ROW_NUMBER()OVER(ORDERBYLOG_ID)ASROWIDFROMLOG_SYSTEM  )ASBWHEREROWIDBETWEEN10AND20---WHEREROWIDBETWEEN当前页数-1*条数AND页数*条数---

SQL SERVER的有哪几种分页方式

2、第二种方式:OFFSETFETCHNEXT方式(SQL2012以上的版本才支持:推荐使腩柽鬣盛用)使用OFFSET是SQLServer2012新具有的分页功能,主要功能是从第x条数赍铈于脏据开始共取y数据。但是其必须根再OrderBy后面使用,相比前三种方式更加方便。SELECT*FROMLOG_SYSTEMORDERBYLOG_IDOFFSET4ROWSFETCHNEXT5ROWSONLY---ORDERBYLOG_IDOFFSET页数ROWSFETCHNEXT条数ROWSONLY---

SQL SERVER的有哪几种分页方式

3、--第三种方式:--TOPNOTIN方式(适应于数据库2012以下的版本)先搜出id在1-15之间的数据,紧接着搜出id不在1-15之间的数据,最后将搜出的结果取前十条。SELECTTOP10*FROMLOG_SYSTEMWHERELOG_IDNOTIN(SELECTTOP15LOG_IDFROMLOG_SYSTEM)---WHEREIDNOTIN(SELECTTOP条数*页数LOG_IDFROMLOG_SYSTEM)---

SQL SERVER的有哪几种分页方式

4、--第四种方式:用存储过程的方式进行分页CREATEPROCEDUREPAGE_DEMO氆尧彻性@TABLENAMEVARCHAR(婷钠痢灵20),@PAGESIZEINT,@PAGEINTASDECLARE@NEWSPAGEINT,@RESVARCHAR(100)BEGINSET@NEWSPAGE=@PAGESIZE*(@PAGE-1)SET@RES='SELECT*FROM'+@TABLENAME+'ORDERBYLOG_IDOFFSET'+CAST(@NEWSPAGEASVARCHAR(10))+'ROWSFETCHNEXT'+CAST(@PAGESIZEASVARCHAR(10))+'ROWSONLY'EXEC(@RES)ENDEXECPAGE_DEMO@TABLENAME='LOG_SYSTEM',@PAGESIZE=3,@PAGE=5GO

SQL SERVER的有哪几种分页方式

5、小结自我感觉第二种方式非常的简单,不冗余因为没有嵌套查询啊,少了Sql语句的嵌套,就少了“视觉上的逻辑”,但是大家一定要切记,这种方式只是适合SqlServer2012以及更高的版本。由上面的例子可以看出,SqlServer的确挺强大的,但是如果我们缺少发现“功能”的眼睛的话,SqlServer再强大对我们来说也没有。

SQL SERVER的有哪几种分页方式

© 一点知识