Sql Server Row_Number() 学习
Row_Number(): row_number()主要是为选出的每一条记录按照一定的排序方式生成一个行序号。 语法: ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression, ... [ n ] ] order_by_clause) 下面是学习row_number()的测试例子: CREATE TABLE #Test ( TypeNa
Row_Number():
row_number()主要是为选出的每一条记录按照一定的排序方式生成一个行序号。
语法:
ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )
下面是学习row_number()的测试例子:
CREATE TABLE #Test
(
TypeName VARCHAR(50),
TestName VARCHAR(50),
UpdateDate DATETIME
)
INSERT INTO #Test VALUES('Type1','Test1','2013-07-07')
INSERT INTO #Test VALUES('Type1','Test1','2013-07-06')
INSERT INTO #Test VALUES('Type1','Test1','2013-07-05')
INSERT INTO #Test VALUES('Type2','Test1','2013-07-04')
INSERT INTO #Test VALUES('Type2','Test1','2013-07-03')
INSERT INTO #Test VALUES('Type2','Test1','2013-07-02')
INSERT INTO #Test VALUES('Type2','Test1','2013-07-01')
1.按时间升序排序返回#Test表的行号:
SELECT ROW_NUMBER() OVER (ORDER BY UpdateDate) RowNumber,*
FROM #Test
结果集:
1
Type2
Test1
2013-07-01 00:00:00.000
2
Type2
Test1
2013-07-02 00:00:00.000
3
Type2
Test1
2013-07-03 00:00:00.000
4
Type2
Test1
2013-07-04 00:00:00.000
5
Type1
Test1
2013-07-05 00:00:00.000
6
Type1
Test1
2013-07-06 00:00:00.000
7
Type1
Test1
2013-07-07 00:00:00.000
2.以TypeName为分组 按时间排序:
SELECT ROW_NUMBER() OVER (PARTITION BY TypeName ORDER BY UpdateDate) RowNumber,*
FROM #Test
结果集:
1 Type1 Test1 2013-07-05 00:00:00.000
2 Type1 Test1 2013-07-06 00:00:00.000
3 Type1 Test1 2013-07-07 00:00:00.000
1 Type2 Test1 2013-07-01 00:00:00.000
2 Type2 Test1 2013-07-02 00:00:00.000
3 Type2 Test1 2013-07-03 00:00:00.000
4 Type2 Test1 2013-07-04 00:00:00.000
3.找出按时间排序第三条到第六条的数据:
;WITH TestOrder AS
(
SELECT ROW_NUMBER() OVER (ORDER BY UpdateDate) RowNumber,*FROM #Test
)
SELECT * FROM TestOrder WHERE RowNumber BETWEEN 3 AND 6
结果集:
3 Type2 Test1 2013-07-03 00:00:00.000
4 Type2 Test1 2013-07-04 00:00:00.000
5 Type1 Test1 2013-07-05 00:00:00.000
6 Type1 Test1 2013-07-06 00:00:00.000
MSDN 学习地址
,美国空间,香港虚拟主机,网站空间下一篇: 求大神相助,谢谢
推荐阅读
-
Sql Server Row_Number() 学习
-
Sql Server 2005自定义Split函数
-
获取SQL Server数据库里表占用容量大小_MySQL
-
sql server 临时表 查找并删除的实现代码
-
SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
-
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法_PHP
-
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法_PHP教程
-
SQL Server数据库中的存储过程介绍
-
如何获取SQL Server数据库里表的占用容量大小
-
SQL Server中统计每个表行数的快速方法