SQLServer 实现oracle中rownum 的功能
2017-04-14 16:09
465 查看
转载于 http://www.cnblogs.com/shuang121/archive/2011/03/11/1981827.html
Oracle数据库换成SqlServer数据库,在转换的过程中出现一点问题,就是输出表的行号的时候出现了问题,在Oracle数据库中,可以直接通过它的rownum来完成,语句如下
select rownum as num,t.occurrenceid,t.occurrencenum2,t.registerdate,b.occtype,t.AMOUNT,t.occresult,t.occtime,t.yr,t.zi,t.hao,t.step as step from occurrence t left join occ_type b on t.occtypeid = b.occtypeid where t.step<3
and t.Departmentid='101000' order by t.registerdate desc
但是放到SqlServer2005中就会出错看,说是rownum有错误,最后才知道在SqlServer查询行号不是那样查的,是用SqlServer的row_number()来查询的
select row_number() over(order by t.registerdate desc) as num,t.occurrenceid,t.occurrencenum2,t.registerdate,b.occtype,t.AMOUNT,t.occresult,t.occtime,t.yr,t.zi,t.hao,t.step as step from occurrence t left join occ_type b on
t.occtypeid = b.occtypeid where t.step<3 and t.Departmentid='101000'
解释:
1 此方法把括号里的查询结果放到变量:temp 里面( 我也不确定是不是变量), 并用row_number() 函数进行一个行号跟踪, 再用over 函数进行一个列的排序规则( 是这必须的), 并指定列名为'rownum'
2 紧接着在下面的语句可以对 'rownum' 进行一个指定行号的查询
Oracle数据库换成SqlServer数据库,在转换的过程中出现一点问题,就是输出表的行号的时候出现了问题,在Oracle数据库中,可以直接通过它的rownum来完成,语句如下
select rownum as num,t.occurrenceid,t.occurrencenum2,t.registerdate,b.occtype,t.AMOUNT,t.occresult,t.occtime,t.yr,t.zi,t.hao,t.step as step from occurrence t left join occ_type b on t.occtypeid = b.occtypeid where t.step<3
and t.Departmentid='101000' order by t.registerdate desc
但是放到SqlServer2005中就会出错看,说是rownum有错误,最后才知道在SqlServer查询行号不是那样查的,是用SqlServer的row_number()来查询的
select row_number() over(order by t.registerdate desc) as num,t.occurrenceid,t.occurrencenum2,t.registerdate,b.occtype,t.AMOUNT,t.occresult,t.occtime,t.yr,t.zi,t.hao,t.step as step from occurrence t left join occ_type b on
t.occtypeid = b.occtypeid where t.step<3 and t.Departmentid='101000'
解释:
1 此方法把括号里的查询结果放到变量:temp 里面( 我也不确定是不是变量), 并用row_number() 函数进行一个行号跟踪, 再用over 函数进行一个列的排序规则( 是这必须的), 并指定列名为'rownum'
2 紧接着在下面的语句可以对 'rownum' 进行一个指定行号的查询
相关文章推荐
- sqlserver 中如何实现ORACLE中的ROWNUM功能
- SqlServer 实现rownum 的功能
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- sqlserver 与 oracle实现同样功能
- ORACLE中实现类似SQLSERVER中IDENTITY(1,1)序号自增的功能
- Mysql实现oracle的rownum功能
- sqlserver2005实现oracle中的rownum(记录号)功能
- SQLSERVER 里实现ORACLE里的Sequence 的功能(亲自实践)
- sqlserver 类似oracle的rownum功能: row_number
- sqlite实现oracle的rownum功能
- MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能
- SQLServer 实现rownum 的功能
- SQLServer 实现rownum 的功能
- 用锁实现SQLSERVER中并发控制--实现Oracle中select .... for update功能
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- Informix 中如何实现 Oracle rownum 功能的研究
- sqlserver下用函数实现 oracle 的树查询( start with connect by ) 功能
- ORACLE三层嵌套实现分页功能和ROWNUM的使用
- sqlserver2005实现oracle中的rownum功能
- mysql实现oracle的rownum功能