select * from t
id
----------
1
2
3
4
5
6
7
8
9
10
我想select * from t where id =3 的时候返回
id
----------
1
2
3
select * from t where id =4
id
----------
2
3
4
除了返回自己的时候 还返回前3行数据有什么办法?
select *
from (select level lv from dual connect by level 复制代码如果可以改表结构的话,可以这样:alter table t_source add rn number;
update t_source set rn=rownum;
create index i_rn on t_source(rn);
select * from t_source t where rn between &rn - 2 and &rn;复制代码