ROW_NUMBER函数在分页中的使用示例
来源:互联网 发布:淘宝途虎机油怎么样 编辑:程序博客网 时间:2024/05/17 01:33
在SQL Server2005中有一个ROW_NUMBER函数,它将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号。
以北风数据库为例,代码如下:
SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS ROW,ProductName FROM Products
运行的结果如下:
ROW ProductName
--------------------- ----------------------------------------
1 Chai
2 Chang
3 Aniseed Syrup
4 Chef Anton's Cajun Seasoning
5 Chef Anton's Gumbo Mix
6 Grandma's Boysenberry Spread
如果要取出表中2-5个产品名称,把上面的查询变为子查询,并在主查询的WHERE子句过滤查询的结果,上面的子查询当作一个独立的表,以在主查询使用(在子查询后面的AS关键字,是用来给这个虚拟“表”指定一个新建的名称)
SELECT ROW,ProductName
FROM(SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS ROW,ProductName FROM Products)
AS ProductsWithRowNumbers WHERE Row >=2 AND Row<=5
运行的结果如下:
ROW ProductName
--------------------- ----------------------------------------
2 Chang
3 Aniseed Syrup
4 Chef Anton's Cajun Seasoning
5 Chef Anton's Gumbo Mix
使用表变量
如果需要对取回的数据集进行进一步操作,就可能需要保存它,保存在一个TABEL变量中,在一个存储过程中表变量常用来存放临时数据。TABLE表变量可以作为正常表来使用。
以北风数据库为例,代码如下:
CREATE PROCEDURE MyTable
AS
DECLARE @MyProducts table
(MyROW int,
MyProductID int,
MyProductName varchar(40))
BEGIN
INSERT INTO @MyProducts
SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS ROW,ProductID,ProductName FROM Products
SELECT MyROW,MyProductName FROM @MyProducts WHERE MyROW >=2 AND MyROW<=5
END
GO
运行的结果如下:
MyROW MyProductName
----------- ----------------------------------------
2 Chang
3 Aniseed Syrup
4 Chef Anton's Cajun Seasoning
5 Chef Anton's Gumbo Mix
使用临时表
如果需要对取回的数据集进行进一步操作,就可能需要保存它,保存在临时表中,在一个存储过程中临时表常用来存放临时数据。临时表可以作为正常表来使用。
以北风数据库为例,代码如下:
CREATE PROCEDURE [dbo].[MyTable]
AS
CREATE TABLE #MyProducts
(MyROW int,
MyProductID int,
MyProductName varchar(40))
BEGIN
INSERT INTO #MyProducts
SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS ROW,ProductID,ProductName FROM Products
SELECT MyROW,MyProductName FROM #MyProducts WHERE MyROW >=2 AND MyROW<=5
END
运行的结果如下:
MyROW MyProductName
----------- ----------------------------------------
2 Chang
3 Aniseed Syrup
4 Chef Anton's Cajun Seasoning
5 Chef Anton's Gumbo Mix
- ROW_NUMBER函数在分页中的使用示例
- 3、分页 (row_number函数)
- 排名函数row_number()在SqlServer2000中的实现
- 使用row_number()实现分页
- 再看case when 在row_number中的使用
- ROW_NUMBER()函数的使用 (利用可以轻松分页)
- 在sql server2005中使用row_number()实现分页
- SQL 分页查询-ROW_NUMBER() 函数
- ORACLE中的ROW_NUMBER函数
- ORCLE使用ROW_NUMBER()实现分页
- ROW_NUMBER()函数的使用
- ROW_NUMBER()函数的使用
- ROW_NUMBER()函数使用详解
- DB2分页查询sql和ROW_NUMBER()函数
- SQL2005新函数ROW_NUMBER()分页2
- SQL2005新函数ROW_NUMBER()实现分页
- Sql Server 2005 ROW_NUMBER 函数实现分页
- Sql Server 2005 ROW_NUMBER 函数实现分页
- Linux下常用软件的安装大全
- Linux服务器网卡驱动安装及故障排除
- 从B 树、B+ 树、B* 树谈到R 树(转载)
- 【C/C++】如何利用char型数组buffer存放指针
- Xcode 和Interface Builder
- ROW_NUMBER函数在分页中的使用示例
- 李长春抵达伊斯兰堡开始访问巴基斯坦-李长春-巴基斯坦-伊斯兰堡
- Suspending console(s) (use no_console_suspend to debug) android4.0 OMAP4460
- 利用GNUstep搭建windows下object-c的开发环境
- uboot网络移植成功,tftp能用。
- java下载远程http地址的图片文件到本地-自动处理图片是否经过服务器gzip压缩的问题
- 有关音频编码的知识与技术参数
- 源码分析
- Why use HDFS over Lustre and / or GPFS?