--connect by 使用详解
基本用法
实例:
SELECT ename, job, ename FROM scott.emp emp START WITH ename IN ('WARD') CONNECT BY empno = PRIOR mgr;
START WITH:表示递归的种子,即从哪里开始
CONNECT BY:描述递归步骤,即怎么找下一层
PRIOR:指上一层的
集合用法
每个关键词都可以独立用,这里集中在一起用:
-
LEVEL伪列:表明产生的行属于第几步递归
CONNECT_BY_ROOT:返回指定字段的根的值
SYS_CONNECT_BY_PATH:返回指定字段的从根到当前行的路径
ORDER SIBLINGS BY:在同一父亲下,各个兄弟按指定的字段排序
NOCYCLE:防止递归进入死循环
CONNECT_BY_ISCYCLE:如果当前行是循环的一部分,则返回1,否则返回0
CONNECT_BY_ISLEAF:如果当前行是叶子,则返回1,否则返回0
特殊用法:拆分字符串
实例:
可用在PL/SQL中,对某一变量进行拆分,比如来自CSV文件的内容。