使用row_number()实现分页实例

   2015-08-01 0
核心提示:或许大家不知道,其实使用row_number()是可以实现分页的,下面有个不错的示例,大家可以尝试操作下
复制代码 代码如下:

create procedure p_News
@pageSize int,@pageIndex int
as
begin
select * from(
select *,Row_Number() over(order by Id) as [$Row_Num] from News
--where [$Row_Num]<=3 这个时候行号不能用,必须全部执行完毕以后才会产生
)as _temp where [$Row_Num] between (@pageIndex*pageSize+1) and (@pageIndex+1)*@pageSize
end
--注意参数的设置,java调用时 String sql="{call p_News(?,?)}"
--select Row_Number() over(order by id) RN,* from News where id ID>3 给最终的结果编一个号,一个连续的号
--order by必须写在括号里面,因为写在from News 后面会报 sql的错误:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
 
标签: row number 分页
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • MYSQL-实现ORACLE- row_number() over(partitio
    MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能   由于MYSQL没有提供类似ORACLE中OVER()这样丰富的分析函数. 所以在MYSQL里需要实现这样的功能,我们只能用一些灵活的办法:1.首先我们来创建实例数据:drop table if exists heyf_t10;crea
    02-10
  • MySQL的SQL_CALC_FOUND_ROWS真的很慢么? SQL_C
    分页程序一般由两条SQL组成:SELECT COUNT(*) FROM ... WHERE ....SELECT ... FROM ... WHERE LIMIT ...  如果使用SQL_CALC_FOUND_ROWS的话,一条SQL就可以了:SELECT SQL_CALC_FOUND_ROWS ... FROM ... WHERE LIMIT ...  在得到数据后,通过FOUND_ROWS()
    02-10
  • 由于row_number() over 是Oracle中的函数,MySQL如何实现相同功能?
    由于row_number() over 是Oracle中的函数,MySQ
    示例:想要取出每个课程前3名的学生信息、课程id,成绩与对应课程内排名创建student表:s_id为学生id,s_name为学生姓名,s_sex为性别创建score表:s_id 为学生id,c_id为课程id,s_score为对应的成绩  #内嵌部分:set @rank:=0;select *, @rank:=case when
    02-10
  • mysql row模式查看原始sql
    得设置:binlog_rows_query_log_events=1
    02-09
  • mysql中实现行号,oracle中的rowid oracle sele
     mysql中实现行号需要用到MYSQL的变量,因为MySql木有rownumber。 MYSQL中变量定义可以用set @var=0或set @var:=0 可以用=或:=都可以,但是如果变量用在其他语句中,如:select那么必须用:=,因为=会被当作一个比较符号 1 select @rownum:=@rownum+1 as ro
    02-09
  • SQL分页排序的实现与分页数据重复问题——以Ora
    对于关系数据库来说,直接写SQL拉数据在列表中显示是很常用的做法。但如此便带来一个问题:当数据量大到一定程度时,系统内存迟早会耗光。另外,网络传输也是问题。如果有1000万条数据,用户想看最后一条,这时即便有足够的内存,在网络上传输这么多数据也得
    02-09
  • [转载]Oracle数据库 sql%found,sql%notfound,sq
    sql%found,sql%notfound,sql%rowcount 在执行DML(insert,update,delete)语句时,可以用到以下三个隐式游标(游标是维护查询结果的内存中的一个区域,运行DML时打开,完成时关闭,用sql%isopen检查是否打开):sql%found (布尔类型,默认值为null)sql%n
    02-09
  • Oracle SQL篇(三)Oracle ROWNUM 与TOP N分析
        首先我们来看一下ROWNUM:含义解释:1、rownum是oracle为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推。这是一个伪列,可以用于限制查询返回的总行数。2、rownum不能以任何基表的名称作为前缀。对于ROWNUM来说,通常我们可以使
    02-09
  • SQL Server使用row_number分页的实现方法
    这篇文章主要为大家详细介绍了SQL Server使用row_number分页的实现方法,具有一定的参考价值,感兴趣的朋友可以参考一下
  • Oracle开发之分析函数(Rank, Dense_rank, row_n
    本文主要是对Oracle分析函数Rank, Dense_rank, row_number的使用法,通过这些函数,我们可以对数据进行排序和分组,需要的朋友可以参考下。
点击排行