是这样的,公司最近要统计一个东西,表里有一个字段是手机号,现在要找出相邻行中,手机号相连的情况,应该怎么写呢,
请大家给一个思路吧
2个相连的话,就找出这2行记录,多个相连,就找出多条记录

解决方案 »

  1.   

    分析函数 lag、lead,查查用法
      

  2.   

    测试表tt
    ID
    1
    2
    3
    4
    5
    6
    7
    8
    9
    11
    12
    17
    19select id from 
    (
    select id,lead(id) over (order by id) as next_id,lag(id,1) over (order by id) as pre_id from tt
    ) where id=next_id-1 or id=pre_id+1
    结果
    1
    2
    3
    4
    5
    6
    7
    8
    9
    11
    12
      

  3.   

    SQL> select * from (select id, lead(id) over(order by id) r1, id+1 r2, lag(id) o
    ver(order by id) r3, id-1 r4 from test_lead) where r1=r2 or r3=r4;
      

  4.   

    SQL> select * from (select id, lead(id) over(order by id) r1, id+1 r2, lag(id) o 
    ver(order by id) r3, id-1 r4 from test_lead) where r1=r2 or r3=r4;
      

  5.   

    测试表tt 
    ID 









    11 
    12 
    17 
    19 select id from 

    select id,lead(id) over (order by id) as next_id,lag(id,1) over (order by id) as pre_id from tt 
    ) where id=next_id-1 or id=pre_id+1 
    结果 









    11 
    12