Oracle获取上一条记录或上一条记录函数
2017-12-30 16:59
211 查看
想要获取上一条或者下一条记录,又不能根据某以字段获取,Oracle提供了这样的函数
!--获取上一条记录,若没有记录则值为0,其中' lag (news_id,1,0 ) ' news_id为根据哪一个字段进行检查,'1 '为每次偏移量,' 0 ' 为没有上一条时的返回值;
select n.*,lag(news_id,1,0) over(order by news_id asc) nid from news n;
执行结果,最右边多了一行,是每一条记录上一条记录的news_id
!--具体运用,可以获取下一条记录的news_id
select nid from
(
select n.*,lead(news_id,1,0) over(order by news_id asc) nid from news n
)a where news_id = 3
!--获取下一条记录,这里不再追述
select n.*,lead(news_id,1,0) over(order by news_id asc) nid from news n
!--具体运用,可以获取上一条记录的news_id
select nid from
(
select n.*,lead(news_id,1,0) over(order by news_id asc) nid from news n
)a where news_id = 3
!--获取上一条记录,若没有记录则值为0,其中' lag (news_id,1,0 ) ' news_id为根据哪一个字段进行检查,'1 '为每次偏移量,' 0 ' 为没有上一条时的返回值;
select n.*,lag(news_id,1,0) over(order by news_id asc) nid from news n;
执行结果,最右边多了一行,是每一条记录上一条记录的news_id
!--具体运用,可以获取下一条记录的news_id
select nid from
(
select n.*,lead(news_id,1,0) over(order by news_id asc) nid from news n
)a where news_id = 3
!--获取下一条记录,这里不再追述
select n.*,lead(news_id,1,0) over(order by news_id asc) nid from news n
!--具体运用,可以获取上一条记录的news_id
select nid from
(
select n.*,lead(news_id,1,0) over(order by news_id asc) nid from news n
)a where news_id = 3
相关文章推荐
- Oracle分析函数(每组数据取一条记录)
- 获取最后插入的一条记录,使用函数scope_indentity()
- ORACLE随机获取数据库表的一条记录
- Oracle分析函数系列之first_value/last_value:在记录集中查找第一条记录和最后一条记录
- Oracle 利用lead、lag函数查询已有记录的下一条、上一条记录
- oracle 一个表里有多条记录引用另一个表的主键 并获取此表的最后一条记录
- oracle及mysql+mybatis新增一条记录并获取该记录的id
- oracle分析函数系列之first_value/last_value:在记录集中查找第一条记录和最后一条记录
- oracle 数据库单子段多条记录合并一条记录函数
- oracle查询指定字段 重复记录大于一条的记录,并统计该记录出现的总次数
- 获取表中新记录(下一条记录)的主键值的存储过程
- oracle 存储过程 stored procedure 查询一条记录或多条记录
- oracle获取字符串长度函数length()和hengthb()
- 怎么计算Oracle的表一条记录占用空间的大小
- hibernate中获取使用mysql当前插入一条记录的id值
- LeanCloud获取最近会话列表和获取最后一条聊天记录
- oracle获取上一旬的开始时间和结束时间的实现函数
- oracle 删除重复记录 只保留一条
- Hibernate获取'上一条'和'下一条'记录
- 获取数据表中最后一条记录的