oralce递归查询

  
1。基本语法是:
  
 <代码>选择……从& lt; TableName>
  在& lt; Conditional-1>
  开始& lt; Conditional-2>
  connect by & lt; Conditional-3>;//& lt; Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。//& lt; Conditional-2>:查询结果重起始根结点的限定条件。//& lt; Conditional-3>:连接条件//如果connect by中之前的之前被省略,则查询将不进行深层递归。 
  
2。向上查询当前菜单及所有上级菜单
  
 <代码>选择t。*从s_menu t从t。id=510的连接之前t。fid=t.id  
  
3。向上查询所有上级菜单(不包含当前菜单)
  
 <代码>选择t。*从s_menu t从t。id=510的连接之前t。fid=t.id  
  
4。向下查询当前菜单及所有下级菜单
  
 <代码>选择t。*从s_menu t从t。id=001的连接之前t。id=t。fid  
  
5。向下查询所有下级菜单(不包含当前菜单)
  
 <代码>选择t。*从s_menu t从t。id=001的连接之前t。id=t.fid  
  
6。查询递归路径h5> <代码>选择t.id t.name, fid, substr (sys_connect_by_path(名称,“→”),3)menu_path   从s_menu t开始t.name='系统功能的连接之前,t。id=t。fid order by t.id   
7。分层次显示h5> <代码>选择t.id lpad (“|——”, (1) * 4 | -) | | lpad ('“', 2) | | t.name | | rpad('“', 2)作为新名称   之前从s_menu t connect by t.id=t。fid开始t.id=' 1 '   
总结h5> <代码>向上递归和向下递归的关键就是最后一个条件,父ID等于ID则向上递归,反之向下递归。   

参考:http://www.cnblogs.com/wanghonghu/archive/2012/08/31/2665945.html

oralce递归查询