已知开始页为
1
3
4
5
6
7
14
16
怎么求得结束页,我知道除第一条记录外,结束页等于开始页-1,用SQL怎么写出来呢?高分求教!

解决方案 »

  1.   

    with tmp (s_page) as
    (select 1 from dual union all
    select 3 from dual union all
    select 4 from dual union all
    select 5 from dual union all
    select 6 from dual union all
    select 7 from dual union all
    select 14 from dual union all
    select 16 from dual)
    select t.s_page,
           nvl(lead(t.s_page) over(order by s_page) - 1, t.s_page) as e_page
      from tmp t
      

  2.   

    with tmp as
    (select 1 s_page from dual union all
    select 3 from dual union all
    select 4 from dual union all
    select 5 from dual union all
    select 6 from dual union all
    select 7 from dual union all
    select 14 from dual union all
    select 16 from dual)
    select t.s_page,
           nvl(lead(t.s_page) over(order by s_page) - 1, t.s_page) as e_page
      from tmp t
      

  3.   

    这个可以~with tmp as
    (select 1 s_page from dual union all
    select 3 from dual union all
    select 4 from dual union all
    select 5 from dual union all
    select 6 from dual union all
    select 7 from dual union all
    select 14 from dual union all
    select 16 from dual)
    select t.s_page,
           nvl(lead(t.s_page) over(order by s_page) - 1, t.s_page) as e_page
      from tmp t