SQL分页查询方法摘要

要求:查询表dbo。消息,每页10页,第二页查询

1:顶部()


选择顶部(20)dbo.消息代码不在
(选择前(10)代码由dbo。消息)


2:*和*之间,row_number()结束(以*)作为行号


SELECT *,row_number()在(顺序码)作为行号为#由dbo。消息
SELECT * FROM #在行号11和20之间
#表一;


3:带*的为(),()在row_number(以*)作为行号


以SSS为例(
SELECT *,row_number()结束(以创造时间)为行号从dbo。消息

SELECT * FROM SSS在行号11和20之间


offset-fetch筛选4:SQL Server 2012


选择dbo.通过创造时间消息顺序偏移10行10行只取下


这里详细介绍了第四种方法。

最高的选择是一个非常有用的筛选类型,但它有两个缺点不是一个标准的SQL,没有跳过功能上类似于标准的SQL定义为offset-fetch,支持跳转功能,为特定的pages.sql Server2012介绍offset-fetch筛选支持查询是非常有用的。

在SQL Server 2012 offset-fetch滤波器作为ORDERBY子句的一部分,它通常是用来实现顺序的显示效果,抵消条款指定要跳过的行数,并提取条款指定要筛选的行数后跳过的行数。请考虑以下查询例。


选择订单号,订单,custId,工号
从销售订单
订单订单,订单号
偏移50行仅取下25行;


此查询,根据OrderDate OrderID序列(从订货之日起直到最近,和添加属性(决胜局)OrderId)订单表排序线。在这个秩序,补偿条款跳过前50行,并取25线以下条款只过滤器。

请注意,使用offset-fetch查询必须有ORDERBY子句。此外,提取条款不支持没有抵消条款。如果你不想跳过任何一行,但要用取筛选,你应该使用偏移0行显示它。然而,不取是允许的偏移量,和这是跳过指定的行数和返回的所有剩余行的查询结果为例。

offset-fetch语法有一些有趣的语言方面要注意,单数和复数格式行行可以互换,你可以描述在一个直观和类似英语的筛查方法。例如,假设你只想得到,如果你指定一个取1行,虽然它在语法上是有效的,它看起来怪怪的。所以,你可以使用取1行格式。这种交流也适用于抵消条款。另外,如果你不想跳过任何一行(偏移0行),你可能首先想到的是到下一个更适合的,所以第一第二格式互换。

你可以看到,从支撑跳跃功能的offset-fetch条款比顶条款更加灵活。但是,offset-fetch不支持率和有联系的选项,而高层的支持。因为offset-fetch是标准的,不顶,我建议使用offset-fetch作为默认选择,除非你最需要支持和offset-fetch不支持的功能。

以上是萧边介绍的SQL查询分页的一个总结,希望能对你有帮助。如果你有任何问题,请给我留言。萧边会及时回复你。