您的位置:首页 > 数据库 > Oracle

Oracle Connect By Prior用法(实现递归查询)

2011-12-02 11:03 471 查看
SQL:
select id,pid,treename,url,treetype from  web_menu_tree  where  roleid = 1 and  delflag = 1 start with  id = 1 connect by prior id = pid

表结构

-- Create table
create table WEB_MENU_TREE
(
ID         NUMBER not null,
PID        NUMBER,
TREENAME   VARCHAR2(200),
URL        VARCHAR2(200),
ROLEID     NUMBER,
TREETYPE   NUMBER,
ORDERNUM   NUMBER,
DELFLAG    NUMBER,
CREATETIME DATE default SYSDATE
)
tablespace IBM_DATA
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);

start with...connect by prior子句用法 connect by 是结构化查询中用到的,

基本语法是: select  *  from tablename start with 条件1  connect by 条件2  where  条件3;

最近在写一棵目录树的时候,由于设计时表结构设计的不是特别好,所以只有采用递归查询来处理
顺便请教了我们公司的Oracle DB大师的精典写法,了解一下吧,好处不少。很多地方可以用得到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: