ROW_NUMBER (Transact-SQL)
SELECT ROW_NUMBER() OVER ( ORDER BY MemberID DESC ) ,
*
FROM dbo.tbm_mem_Member_Beneficiary
ORDER BY MemberID;
DECLARE @MyTable TABLE
(
TableName NVARCHAR(100) NOT NULL ,
RowNumber INT NOT NULL
);
INSERT INTO @MyTable
SELECT TABLE_NAME ,
ROW_NUMBER() OVER ( ORDER BY TABLE_NAME ASC )
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND TABLE_NAME LIKE 'tbm_cih_CustomTableItemHistory_%'; DECLARE @CurrentNumber INT = 1;
DECLARE @MaxRowNumber INT = 0;
DECLARE @TableName NVARCHAR(100);
DECLARE @Sql NVARCHAR(200); SELECT @MaxRowNumber = MAX(RowNumber)
FROM @MyTable;
WHILE ( @CurrentNumber <= @MaxRowNumber )
BEGIN
SELECT @TableName = TableName
FROM @MyTable
WHERE RowNumber = @CurrentNumber;
SET @Sql = 'SELECT * FROM ' + @TableName
+ ' WHERE CustomTableItemHistoryID IS NULL ';
--PRINT @Sql;
EXEC ( @Sql );
SET @CurrentNumber = @CurrentNumber + 1;
END;
先从表里面筛选数据,并且添加RowNumber列,把这个筛选结果作为result
然后从result中进行二次筛选,通过pagesize和pageindex来进行分页
SELECT TOP ( @PageSize ) CreatedOn ,
PointsType ,
Points ,
Concept
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY CustomTableItemID DESC ) AS RowNumber ,
CreatedOn ,
PointsType ,
Points ,
Concept
FROM dbo.vie_cti_19
WHERE BeneficiaryID = @MemberID
AND CompanyID = @CompanyID ) result
WHERE result.RowNumber > ( @PageIndex - 1 ) * @PageSize
ORDER BY result.RowNumber;
generate row numbers in the same order the data are added.
从表里筛选数据,新增一列,这一列标记自然顺序
But what if you want to generate row numbers in the same order the data are added.
Can you omit the ORDER BY Clause?
SELECT *,ROW_NUMBER() OVER () AS SNO FROM #TEST
The above throws the following error
Msg 4112, Level 15, State 1, Line 1
The function ‘ROW_NUMBER’ must have an OVER clause with ORDER BY.
But there is a way. Just do not ORDER BY any columns, but ORDER BY a literal value as shown below
SELECT *,ROW_NUMBER() OVER (ORDER BY (SELECT 100)) AS SNO FROM #TEST
In place of SELECT 100, you can use anything like SELECT 1, SELECT ‘A’, SELECT NULL, etc
通过id和筛选出来的自然排序进行分组
有一张表TestPartition,有两列数据
WITH temp
AS ( SELECT Id ,
[number] ,
ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 )) AS SNO
FROM dbo.TestPartition )
SELECT *
FROM temp
GROUP BY id ,
sno ,
[number]
有了自然排序后,可以分组求和。(每一行都有一个累加)
https://www.cnblogs.com/zhaoguan_wang/p/4632071.html
WITH temp2
AS ( SELECT Id ,
[number] ,
ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 )) AS SNO
FROM dbo.TestPartition )
SELECT temp2.Id ,
temp2.number ,
SUM(number) OVER ( PARTITION BY temp2.Id
ORDER BY temp2.SNO ) AS 'number 累计值'
FROM temp2
partition by的字段用来进行分组
order by的字段用来决定累加的顺序
ROW_NUMBER (Transact-SQL)的更多相关文章
- SQL 常用的判断、连表、跨库、去重、分组、ROW_NUMBER()分析函数SQL用法
常用的SQL 由浅入深 大致上回想一下自己常用的SQL,并做个记录,目标是实现可以通过在此页面查找到自己需要的SQL ,陆续补充 有不足之处,请提醒改正 首先我创建了两个库,每个库两张表.(工作 ...
- 翻译:高级t - sql第1级的阶梯:使用交叉连接来引入高级t - sql
高级t - sql第1级的阶梯:使用交叉连接来引入高级t - sql 源于:格雷戈里·拉森,2016/02/19(首次出版:2014/12/17 翻译:刘琼滨 谢雪妮 徐雅莉 赖慧芳 链接:http: ...
- T-SQL、JET SQL、PL-SQL
数据库分为网状.层状.关系.对象四种类型,目前的数据库一般都是属于关系数据库(包括MYSQL和SQL SERVER),网状.层状基本上已成历史,对象类型尚未普及. SQL 语言是有 ANSI 标准的. ...
- SQL SERVER 简介及应用 - 数据库系统原理
SQL SERVER 是一个分布式的关系型数据库管理系统(RDBMS),具有客户 - 服务器体系结构,一般发行的版本有企业版.标准版.个人版.开发版. SQL SERVER 提供的服务 MS SQL ...
- SQL Server中的锁 详解 nolock,rowlock,tablock,xlock,paglock
摘自: http://www.myexception.cn/sql-server/385562.html 高手进 锁 nolock,rowlock,tablock,xlock,paglock 锁 no ...
- SQL SERVER CURSOR游标的使用(转载)
一:认识游标 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集. 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式. 用SQL语言从数据库中检索数据 ...
- [读书心得]资料分页的优化,以SQL 2012的 OFFSET-FETCH为例
这是我的文章备份,原始出处:[读书心得]资料分页的优化,以SQL 2012的 OFFSET-FETCH为例 http://www.dotblogs.com.tw/mis2000lab/archive/ ...
- SQL Server数据库学习总结
经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数 ...
- SQL Server 分组后取Top N
SQL Server 分组后取Top N(转) 近日,工作中突遇一需求:将一数据表分组,而后取出每组内按一定规则排列的前N条数据.乍想来,这本是寻常查询,无甚难处.可提笔写来,终究是困住了笔者好一会儿 ...
- SQL Server自定义函数( 转载于51CTO )
用户自定义函数自定义函数不能执行一系列改变数据库状态的操作,可以像系统函数在查询或存储过程等的程序中使用,也可以像相信过程一样能过 execute 命令来执行.自定义函数中存储了一个 Transact ...
随机推荐
- golang互斥锁和读写锁
一.互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段.它由标准库代码包sync中的Mutex结构体类型代表.sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开 ...
- cropper+pillow处理上传图片剪裁(一)
在写新博客的时候,遇到需要用户上传自定义图片的处理,查了一番资料,决定用cropper和pillow来处理需要剪裁的图片上传,大致思路是:前端收集用户上传的图片和用户剪裁的尺寸数据,后台接收图片后按数 ...
- 全能VIP音乐在线解析
浏览器安装暴力猴扩展即可使用 // ==UserScript== // @name 全能VIP音乐在线解析 // @version 0.0.10 // @homepage https://greasy ...
- 如何修改 WordPress 数据库前缀
我们知道 WordPress 的数据库表,可以设置前缀,默认是 wp_,很多同学也就默认用了 wp_,如果某种原因(比如提高安全性)要修改的 WordPress 数据的前缀,我们应该怎么做? 开始之前 ...
- SQL Server将数据导出到SQL脚本文件
http://www.studyofnet.com/news/list-8883.2-1-4.html 一.SQL Server 2008将数据导出到SQL脚本文件 1.打开SQL Server200 ...
- ANN:DNN结构演进History—LSTM_NN
前言 语音识别和动作识别(Action.Activities) 等一些时序问题,通过微分方式可以视为模式识别方法中的变长模式识别问题.语音识别的基元为音素.音节,字母和句子模式是在时间轴上的变长序列 ...
- centos 6.10 永久修改主机名
1> 修改配置文件 vim /etc/sysconfig/network #HOSTNAME=localhost.localdomain HOSTNAME=tomcat 2> 修改ho ...
- 洛谷P3195 [HNOI2008]玩具装箱TOY 斜率优化
Code: #include<cstdio> #include<algorithm> using namespace std; const int maxn = 100000 ...
- android的listview的addheaderView总是出现空指针的错误
android的listview的addheaderView总是出现空指针的错误, 网上的处理方法如下: // This doesn't work... nullPointerException Li ...
- [Papers] Semantic Segmentation Papers(1)
目录 FCN Abstract Introduction Related Work FCN Adapting classifiers for dense prediction Shift-and-st ...