谢谢
最好是一条sql搞定
select *,next_id,back_id from table

解决方案 »

  1.   

    select b.*,
           lag(b.id) over(order by b.n) back_id,
           lead(b.id) over(order by b.n) next_id
      from (select a.*, row_number() over(order by a.id) n from test a) b
      

  2.   

    不行呀
    如果加上指定记录得 条件
    back_id和next_id就为空了
      

  3.   

    再加一层:
    select 所需列名
    from
    (select b.*,
           lag(b.id) over(order by b.n) back_id,
           lead(b.id) over(order by b.n) next_id
      from (select a.*, row_number() over(order by a.id) n from test a) b) c
    where c.这样就能查出了
      

  4.   

    把条件语句放到 select a.*, row_number() over(order by a.id) n from test a 后面即可