`
zzc125
  • 浏览: 13413 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server 2005中的Row_Number分页

阅读更多

早就听说了SQL Server 2005中的Row_Number分页了,但是一直就没认真理解这个Row_Number的含义。这两天实在是太忙了,但是还是坚持将这个弄明白了。在说分页之前还是来了解一下Row_Number到底是什么意思吧。我的理解是这样的,一般的我们查询一些记录出来之后,查询出来的记录就是我们想要的,如果我们的表中有一个ID为自动编号,那么如果表中的ID为连续的话,我们查询出来的第一列数据就会像这样:

ID 字段1 字段2
1 …… ……
2 …… ……
3 …… ……
4 …… ……
5 …… ……

再做一个假设,如果我们的表中没有ID呢,或者ID号不是连续的呢,如果我们按照ID来分页的话,就会碰到一些小问题。为了解决分页的问题(自己推测的,具体是不是这个原因还不知道),微软在SQL Server 2005中添加了这个内置函数。当我们的数据表中即使没有一个自增ID的话,使用Row_Number函数照样能实现自增的一串连续的记录,就像上表的ID一样。

来说说用法吧:

select row_number() over(order by getdate() desc) as rownumber,* from test_table

这条SQL语句的意思是查询一个自增的row_number列(在查询的结果中rownumber这列来表示row_numvber的结果)以及test_table表中的所有记录,需要注意的是row_number是做过排序的,根据日期进行倒序排序。结果类似这样的:

image

那么如何分页呢,给出一个示范代码:

declare @currentPageIndex int
set @currentPageIndex=2
select top 5 * from (select row_number() over(order by getdate() desc) as rownumber,* from test_table) as temp_table
where rownumber>5*(@currentPageIndex-1)

做个简单的解释:这里设置的是每页实现5条记录,变量为当前页的索引号,在这里为了符合正常思维,对所以号进行了处理(减1操作)。通过对变量@currentPageIndex 进行赋不同的值,可以看到效果。

分享到:
评论

相关推荐

    SQL Server 2005中ROW_NUMBER()函数在存储过程分页中的应用.pdf

    在SQL Server 2005中,`ROW_NUMBER()`函数是一个非常重要的窗口函数,它在数据处理和查询优化方面发挥着关键作用,特别是在实现存储过程中的分页功能时。本文将深入探讨`ROW_NUMBER()`函数的工作原理,以及如何在...

    Row_number 分页存储过程

    在SQL Server中,`Row_number()` 是一个非常重要的函数,特别是在处理大数据集时,用于实现高效的数据分页显示。这个函数能够为查询结果集的每一行分配一个唯一的整数,通常用于创建动态的、可扩展的分页解决方案。...

    SQL ROW_NUMBER()分页比较

    在 SQL Server 2005 中,使用 ROW_NUMBER() 函数可以实现分页功能,这种方法相比于 SQL Server 2000 中的分页方式效率要高出很多。但是,很多人在使用 ROW_NUMBER() 函数时,使用的方法并不正确。 在本文中,我们将...

    row_number.rar_SQL中row_number用法_number

    在SQL语言中,`ROW_NUMBER()`函数是一种非常重要的窗口函数,用于为查询结果集中的每一行分配一个唯一的整数。这个数字通常按照行的出现顺序进行分配,但也可以根据特定的排序条件进行调整。`ROW_NUMBER()`在数据...

    分页存储过程,仅适用于Sql2005以上,使用 ROW_NUMBER()函数用于多表分页查询,可以分组查询

    SQL Server 2005 及其后续版本引入了 `ROW_NUMBER()` 函数,使得实现分页功能变得更加简单高效。本文将详细介绍一个基于 SQL Server 2005 的分页存储过程,该存储过程不仅支持多表分页查询,还能进行分组查询。 ###...

    sqlserver2005使用row_number() over分页的实现方法

    在SQL Server 2005中,`ROW_NUMBER()` 是一个非常重要的窗口函数,它用于为查询结果集的每一行分配一个唯一的行号。这个功能对于实现高效、灵活的分页查询至关重要,尤其是在处理大数据量的表格时。下面将详细解释`...

    ROW_NUMBER()函数

    ROW_NUMBER() 函数是 SQL Server 2005 中的新功能,它可以实现数据的分页功能,从而提高数据查询的效率。在本文中,我们将详细介绍 ROW_NUMBER() 函数的使用方法和优点,以及如何使用它来实现高效的数据分页。 ROW_...

    sqlServer使用ROW_NUMBER时不排序的解决方法

    设置sqlServer使用ROW_NUMBER时不排序 –1.看到NHibernate是这样写的分页,感觉写起来比较容易理解(应该不会有效率问题吧?) –with只是定一个别名? [sql] with query as (select ROW_NUMBER() over(order by ...

    SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同

    在SQL Server中,分页查询是数据库操作中的常见需求,特别是在处理大量数据时,为了提高用户体验,往往需要分批次地加载数据。本文将探讨两种在SQL Server中实现分页查询的方法:使用`TOP`关键字和使用`ROW_NUMBER()...

    SQL Server使用row_number分页的实现方法

    主要为大家详细介绍了SQL Server使用row_number分页的实现方法,具有一定的参考价值,感兴趣的朋友可以参考一下

    SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较

    总结来说,SQL Server 2005中的四个排名函数各有特点: - `row_number`:为每一行生成一个唯一的序号,不受相同值的影响。 - `rank`:在考虑相同值的情况下分配序号,出现相同值时跳过序号。 - `dense_rank`:同样...

    sqlserver 通用存储过程分页代码(附使用ROW_NUMBER()和不使用ROW_NUMBER()两种情况性能分析)

    首先,ROW_NUMBER()函数在SQL Server中被广泛用于生成行号,常用于分页查询。它为每一行提供一个唯一的整数值,可以根据这个值进行排序和分页。以下是一个使用ROW_NUMBER()的分页存储过程示例: ```sql ALTER ...

    ROW_NUMBER() OVER函数的基本用法

    ROW_NUMBER() OVER 函数是 SQL Server 中的一个窗口函数,用于对查询结果进行编号。该函数可以根据指定的列进行分组和排序,并为每一组记录返回一个唯一的编号。 语法: ROW_NUMBER() OVER (PARTITION BY COLUMN ...

    SQL2005利用ROW_NUMBER() OVER实现分页功能

    ROW_NUMBER()函数在SQL Server中扮演着为每行分配唯一序列号的角色,这对于分页查询尤其有用。本文将详细介绍如何利用ROW_NUMBER() OVER实现SQL2005中的分页功能。 首先,我们要了解ROW_NUMBER() OVER的基本用法。...

    ROW_NUMBER SQL Server 2005的LIMIT功能实现(ROW_NUMBER()排序函数)

    ROW_NUMBER() 函数是 SQL Server 2005 引入的一个重要特性,它使得数据库开发者能够在不支持 LIMIT 关键字的 SQL Server 中实现类似 MySQL 的分页效果。该函数可以为结果集中的每一行分配一个唯一的整数,从而允许...

    oracle分析函数row_number() over()使用

    总之,`ROW_NUMBER() OVER()`是Oracle数据库中进行数据处理和分析的重要工具,它可以为数据提供有序的标识,便于进行排名、分组和筛选等操作,从而满足各种复杂的查询需求。在实际工作中,掌握这一功能能显著提升SQL...

    SqlServer2005中使用row_number()在一个查询中删除重复记录的方法

    在SQL Server 2005中,`row_number()` 是一个非常有用的内置函数,它能够为查询结果集中的每一行分配一个唯一的整数。通常,我们利用`row_number()`进行数据分页,但这里我们将讨论如何利用这个函数来删除表中的重复...

    SQL Server中row_number分页查询的用法详解

    ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以...

Global site tag (gtag.js) - Google Analytics