欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 取当前数据的前N条记录解决方案

更新时间: 2014-01-05 02:13:47 责任编辑: Author_N1

 

oracle 取当前数据的前N条记录
如题,一个简单的表,查询当前记录的前N条满足条件的记录,比如,表有10记录,页面传过来一条记录的ID=8,现在去ID=8记录的前3条满足条件的记录,下面这种不行
      select T.ID,T.VERSION  ,T.TITLE  ,T.CONTENT ,T.INDEX_KV  
          ,T.CONTENT_PIC  ,T.RECOMMEND_TYPE,T.RECOMMEND_PIC  
          ,T.RECOMMEND_URL  ,T.PAST_PIC  ,T.SHARE_CONTENT  ,T.SHARE_PIC  
          ,T.CREATE_DATE  ,T.IS_DELETED  ,T.STATE  ,T.GOOD_FLAG, T.BAD_FLAG,T.PAST_BIG_PIC
  from 
(select rownum rwno, a.* from flagshop_diagram a where  a.is_deleted = 0 and a.state=1 order by id) t
where rwno > 8-4 
and rwno < 8
,等大神解决,新手,没多少分。。。。。
--参考方法--
引用:
如题,一个简单的表,查询当前记录的前N条满足条件的记录,比如,表有10记录,页面传过来一条记录的ID=8,现在去ID=8记录的前3条满足条件的记录,下面这种不行
      select T.ID,T.VERSION  ,T.TITLE  ,T.CONTENT ,T.INDEX_KV  
          ,T.CONTENT_PIC  ,T.RECOMMEND_TYPE,T.RECOMMEND_PIC  
          ,T.RECOMMEND_URL  ,T.PAST_PIC  ,T.SHARE_CONTENT  ,T.SHARE_PIC  
          ,T.CREATE_DATE  ,T.IS_DELETED  ,T.STATE  ,T.GOOD_FLAG, T.BAD_FLAG,T.PAST_BIG_PIC
  from 
(select rownum rwno, a.* from flagshop_diagram a where  a.is_deleted = 0 and a.state=1 order by id) t
where rwno > 8-4 
and rwno < 8
,等大神解决,新手,没多少分。。。。。

将你的满足条件的全部记录作为一个子查询。然后加上条件ROWNUM<N不行吗
--参考方法--
你不是去满足条件的前三条么?
select * (select * from table where ... order by id ) where rownum<=3
--参考方法--
内查询换成以下即可:

select row_number() over (order by id) rwno
    , a.* 
from flagshop_diagram a
where  a.is_deleted = 0
    and a.state=1
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:13:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7233/
本文WWW.DOC100.NET DOC100.NET版权所有。