oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:
select ... from <TableName>
where <Conditional-1>
start with <Conditional-2>
connect by <Conditional-3>
;
<Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。
<Conditional-2>:查询结果重起始根结点的限定条件。
<Conditional-3>:连接条件
SELECT * FROM address a ;
SELECT a1.*
FROM address a1
START WITH a1.parentid IS NULL
CONNECT BY PRIOR a1.id = a1.parentid;
SELECT a1.*
FROM address a1
WHERE a1.name <> '沙井'
START WITH a1.parentid IS NULL
CONNECT BY PRIOR a1.id = a1.parentid;
SELECT a1.*
FROM address a1
START WITH a1.id = 100101
CONNECT BY PRIOR a1.id = a1.parentid