给你一个提示,Oracle每行数据都会有一个ROWID,解析出行号。你可以找到上一行的ROWID和下一行的ROWID,而且用ROWID查询,效率非常高!!!
如果你是要排序过的数据,只能用索引组织表。或者先排序,用分析函数得到一个编号伪劣,然后根据这个编号再找前一条,或者后一条。
另外,Oracle SQL中还有一个函数,LEAD,可以找到上一行的值,当然还有一个下一行的值。可以百度一下,我不太记得了。
如:
SELECT last_name, hire_date,
LEAD(hire_date, 1) OVER (ORDER BY hire_date) AS "NextHired"
FROM employees WHERE department_id = 30;
select rn from (select a.*,rownum rn from table a) where idx='b3wow9'这里的rn取出来为2,那么减rn-1就是上一条,加1就是下一条了
使用Oracle的分析函数