如下面:
号码 新号码
A B
B C
C D
D E
……
随便搜索一个号码 关联的一连串号码都查出来: 无论是差A、B、C、D、E都能得到上述结果
------解决思路----------------------
向前向后分别查询然后union all 到一起
select 号码,新号码
from T
START WITH 新号码='指定的号码'
CONNECT BY PRIOR 号码=新号码
UNION ALL
select 号码,新号码
from T
START WITH 号码='指定的号码'
CONNECT BY PRIOR 新号码=号码
------解决思路----------------------
没看懂 楼主意图
------解决思路----------------------
楼主说的太复杂了,说得简单点
就好比这个表是存储每个人手机号的变更记录,从一个号变成另外一个号
要求输入这个人使用过的任意手机号,把这个人所有手机号的变更记录都查询出来
------解决思路----------------------
嗯,了然。
你那个sql向上 向下树形查询 union起来,略屌啊。
------解决思路----------------------
向前向后分别查询然后union all 到一起select 号码,新号码
from T
START WITH 新号码='指定的号码'
CONNECT BY PRIOR 号码=新号码
UNION ALL
select 号码,新号码
from T
START WITH 号码='指定的号码'
CONNECT BY PRIOR 新号码=号码
报错啊,版主
报什么错啊?是不是你的数据中存在循环,如A变为B,然后B再变成A?
试试加上connect by nocycle
------解决思路----------------------
ORACLE 的递归查询。
START WITH 。。。。
CONNECT BY PRIOR 。。。。