求一条简单的查询语句

kong_d_f 2006-12-12 11:37:02
假如在oracle的某表中有几千条数据,怎么才能高效率的查询到某ID的上一ID或下一ID?
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgm78 2006-12-12
  • 打赏
  • 举报
回复
select r,e.* from (select rownum r,last_name,salary from (
select last_name,salary from employees order by nvl(salary,0) desc)) e
where r between 6 and 8;
kong_d_f 2006-12-12
  • 打赏
  • 举报
回复
ID是混乱的,不是顺序的1,2,3,4,5....排下来的,也许是1,3,4,6,8,12,16....这个下来的
tgm78 2006-12-12
  • 打赏
  • 举报
回复
select * from table where id exist ('id+1','id-1')
weihouyanli 2006-12-12
  • 打赏
  • 举报
回复
UP
tianyacao007 2006-12-12
  • 打赏
  • 举报
回复
select
nex.id, nex.nextid,pri.priorid
from
(
select
t1.id id,
lead(t1.id,1) over(order by t1.id) nextid
from
item t1) nex,
(
select
t2.id id,
lag(t2.id,1) over(order by t2.id) priorid
from
item t2) pri,
where
nex.id = pri.id
and nex.id = 所需ID
rickyelf 2006-12-12
  • 打赏
  • 举报
回复
就楼上的方法了
kingkingkingking 2006-12-12
  • 打赏
  • 举报
回复

select lag(id,1) over(order by id) "id-1",
id,
lead(id,1) over(order by id) "id+1"
from tab
xb_feng 2006-12-12
  • 打赏
  • 举报
回复
SELECT * FROM table
WHERE id<:id
AND ROWNUM=1
ORDER BY id DESC

SELECT * FROM table
WHERE id>:id
AND ROWNUM=1
ORDER BY id

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧