oracle sql获取某一条数据中的前一条和后一条

oracle sql获取某一条数据中的前一条和后一条,如果我从一个新闻列表中的其中一条点击进去,然后在详细页面上要能看到上一条和下一条新闻,顺序是按照id来排好了,这种sql语句怎么写

先把数据集的前一条和后一条查询出来,然后再根据ID查询这个数据集,例子:

SELECT *
  FROM (SELECT ID,
               NAME,
               LEAD(ID) OVER(ORDER BY ORDER_COL) NEXT_VALUE,
               LAG(ID) OVER(ORDER BY ORDER_COL) PREV_VALUE
          FROM TABLE_NAME)
 WHERE ID = ''

其中LEAD和LAG函数的参数可以是其他值

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-11
上/下一条:前提,上/下一条数据要有才可以。
查询条件,当前id -1/+1本回答被提问者采纳

oracle sql获取某一条数据中的前一条和后一条
先把数据集的前一条和后一条查询出来,然后再根据ID查询这个数据集,例子:SELECT * FROM (SELECT ID, NAME, LEAD(ID) OVER(ORDER BY ORDER_COL) NEXT_VALUE, LAG(ID) OVER(ORDER BY ORDER_COL) PREV_VALUE FROM TABLE_NAME) WHERE ID = ''其中LEAD和LAG函数的参数可以是其他...

如何通过SQL截取指定字段某一个字符的前面或后面的字符串?
在Oracle数据库中,截取"."字符前面和后面的字符串的实现方式与SQL Server相似,同样需要调整SQL语句以对应不同截取需求。对于Mysql数据库,同样提供了截取指定字段某一个字符前后字符串的方法。实现此功能时,需根据"."字符在字符串中的位置进行相应调整,确保SQL语句正确地从目标位置开始截取所需的字符串。

oracle中 sql截取某个字符前面和后面的值
1、将新建好的表aaaa,填充需要查询的数据以"_"或者","为分隔符的两条数据。2、先挑ID为1的数据进行截取查询演示。3、如果已知截取字符的长度和特殊字符位置,就可以用substring()函数来从字符串的开始位置,截取到特殊字符出现的位置。4、使用charindex()函数来返回特殊字符出现的位置,查询结果及语句。

Oracle查询当前某条数据的前一行数据与后一行数据!...解决问题悬赏20分...
如果你是要排序过的数据,只能用索引组织表。或者先排序,用分析函数得到一个编号伪劣,然后根据这个编号再找前一条,或者后一条。另外,Oracle SQL中还有一个函数,LEAD,可以找到上一行的值,当然还有一个下一行的值。可以百度一下,我不太记得了。如:SELECT last_name, hire_date,LEAD(hire_date,...

oracle取前几条数据语句
sqlserver中可以用top n 的方法,oracle中用rownum,但如果只用rownum会随机取数据,如果想按一定顺序取前几条数据则可这样写:select * from (select列 from 表 where 条件 order by列 desc) where rownum<列数select * from (select rownum r ,* from test) ttwhere tt.r 50 and tt.r <= 100; (最好...

ORACLE 查询某条数据的相邻两条数据(注ID可能是不连续的)
INSERT INTO TB (ID,COL)VALUES(1,'第一行');INSERT INTO TB (ID,COL)VALUES(2,'第二行');INSERT INTO TB (ID,COL)VALUES(3,'第三行');INSERT INTO TB (ID,COL)VALUES(5,'第四行');INSERT INTO TB (ID,COL)VALUES(7,'第五行');INSERT INTO TB (ID,COL)VALUES(8,'第六行'...

oracle sql语句获取前两条数据
select * from (select id,seq from hzds_admin where seq<=(select seq from hzds_admin where id=42) and parid=0 order by seq desc) where rownum<3

请问:oracle数据库,使用sql语句,如何获取数据前十条?
主要就是因为 oracle 中没有 top ,不过ORACLE 中有等价的用法 select ...from (select ... from table1 order by ...)where rownum<n;像你这种情况就是 n=10 记得给分哦,^_^

如何在oracle数据库中查找最后一条插入的数据?
1、对于提交(最后一次操作commit了)的话可以查询那个提交段SELECT 列名1,列名2??FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC;查出来的第一条就是最后改变的数据 2、如果表里面有序列或固定的排序字段可按倒...

SQL查询已经排序好的数据中的前几条
使用 select top 5 * from table order by id 时,报用select语句检索oracle数据库时出现ora-00923:未找到要求的from关键字。因为该SQL语句是在SQLServer中的使用的,如果是在 Oracle中,需要使用 rownm 这个关键字用来返回查询的记录条数。

相似回答