东西:SQL SERVER 2017
方式/
1第一种:ROW_NUMBER() OVER()体例
把表中的所稀有据都按照一个ROW_NUMBER进行排序, 然后查询ROW_NUMBER 10 到20之间的前十笔记录 。
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER(ORDER BY LOG_ID ) AS ROWID FROM LOG_SYSTEM
) AS B
WHERE ROWID BETWEEN 10 AND 20
---WHERE ROWID BETWEEN 当前页数-1*条数 AND 页数*条数---

2第二种体例:OFFSET FETCH NEXT体例(SQL2012以上的版本才撑持:保举利用 )
利用OFFSET是SQLServer2012新具有的分页功能, 本家儿要功能是从第x条数据起头共取y数据 。 可是其必需根再Order By后面利用, 比拟前三种体例加倍便利 。
SELECT * FROM LOG_SYSTEM
ORDER BY LOG_ID
OFFSET 4 ROWS FETCH NEXT 5 ROWS ONLY
---ORDER BY LOG_ID
OFFSET 页数 ROWS FETCH NEXT 条数 ROWS ONLY ---

3--第三种体例:--TOP NOT IN体例 (顺应于数据库2012以下的版本)
先搜出id在1-15之间的数据, 紧接着搜出id不在1-15之间的数据, 最后将搜出的成果取前十条 。
SELECT TOP 10 * FROM LOG_SYSTEM
WHERE LOG_ID NOT IN (SELECT TOP 15 LOG_ID FROM LOG_SYSTEM)
---WHERE ID NOT IN (SELECT TOP 条数*页数 LOG_ID FROM LOG_SYSTEM) ---

4--第四种体例:用存储过程的体例进行分页
CREATE PROCEDURE PAGE_DEMO
@TABLENAME VARCHAR(20),
@PAGESIZE INT,
@PAGE INT
AS
DECLARE @NEWSPAGE INT,
@RES VARCHAR(100)
BEGIN
SET @NEWSPAGE=@PAGESIZE*(@PAGE - 1)
SET @RES='SELECT * FROM ' +@TABLENAME+ ' ORDER BY LOG_ID OFFSET '+CAST(@NEWSPAGE AS VARCHAR(10)) +' ROWS FETCH NEXT '+ CAST(@PAGESIZE AS VARCHAR(10)) +' ROWS ONLY'
EXEC(@RES)
EXEC PAGE_DEMO @TABLENAME='LOG_SYSTEM',@PAGESIZE=3,@PAGE=5
GO

5小结
【SQL SERVER的有哪几种分页方式】自我感受第二种体例很是的简单,不冗余因为没有嵌套查询啊, 少了Sql语句的嵌套, 就少了“视觉上的逻辑”, 可是大师必然要切记, 这种体例只是适合SqlServer 2012以及更高的版本 。 由上面的例子可以看出, SqlServer简直挺壮大的, 可是若是我们贫乏发现“功能” 的眼睛的话, Sql Server再壮大对我们来说也没有 。

以上内容就是SQL SERVER的有哪几种分页方式的内容啦, 希望对你有所帮助哦!
猜你喜欢
- 微博精准引流的5种方法,小白也能轻松上手!
- windows下PHP运行环境的配置
- 魔兽世界怀旧服瑟银零件的图纸在哪里购买
- 黄金蟒咬人吗 黄金蟒一般情况是不会咬人的
- 黄金蟒温顺吗 黄金蟒其实还是很温驯的蛇类
- 最大的网纹蟒 最大网纹蟒的长度为28.5英尺
- 翠青蛇吃什么 最喜欢吃的食物还是蚯蚓
- 网纹蟒是属于蟒蛇吗 网纹蟒是属于大型蟒蛇的
- 标准灰龙猫和紫灰龙猫哪个更好 两种龙猫的特征
- 翠青蛇有毒吗 翠青蛇是一种比较常见的无毒蛇
