Oracle中START WITH...CONNECT BY PRIOR用法
2018-02-10 14:05
591 查看
通常,在查询树形结构的数据时,需要使用START WITH...CONNECT BY PRIOR的方式查询。
START WITH...CONNECT BY PRIOR的语法为:SELECT 字段
FROM 表名
WHERE 条件1
START WITH 条件2
CONNECT BY PRIOR 条件3条件1:过滤条件
条件2:起始的查询条件,指定根节点
条件3:指定父节点和子节点直接的关系,PRIOR指定父节点
假设现有部门表DEPARTMENT,部门表中字段包括DEPID(部门ID),PARENTDEPID(父部门ID),DEPNAME(部门名称)
1、我们要查询部门ID="1110"的部门的所有父部门的ID和名称(包含部门ID="1110"的部门,不包含可通过WHERE条件过滤)
FROM FW_DEPARTMENT
--WHERE DEPID <> '1110'
START WITH DEPID = '1110'
CONNECT BY PRIOR DEPID = PARENTDEPID从上面2个sql我们可以发现:
查询当前节点的所有子节点时,需要将PRIOR放在子节点左侧
查询当前节点的所有父节点时,需要将PRIOR放在父节点左侧
START WITH...CONNECT BY PRIOR的语法为:SELECT 字段
FROM 表名
WHERE 条件1
START WITH 条件2
CONNECT BY PRIOR 条件3条件1:过滤条件
条件2:起始的查询条件,指定根节点
条件3:指定父节点和子节点直接的关系,PRIOR指定父节点
假设现有部门表DEPARTMENT,部门表中字段包括DEPID(部门ID),PARENTDEPID(父部门ID),DEPNAME(部门名称)
1、我们要查询部门ID="1110"的部门的所有父部门的ID和名称(包含部门ID="1110"的部门,不包含可通过WHERE条件过滤)
SELECT DEPID, DEPNAME FROM FW_DEPARTMENT --WHERE DEPID <> '1110' START WITH DEPID = '1110' CONNECT BY PRIOR PARENTDEPID = DEPID2、我们要查询部门ID="1110"的部门的所有子部门的ID和名称(包含部门ID="1110"的部门,不包含可通过WHERE条件过滤)SELECT DEPID, DEPNAME
FROM FW_DEPARTMENT
--WHERE DEPID <> '1110'
START WITH DEPID = '1110'
CONNECT BY PRIOR DEPID = PARENTDEPID从上面2个sql我们可以发现:
查询当前节点的所有子节点时,需要将PRIOR放在子节点左侧
查询当前节点的所有父节点时,需要将PRIOR放在父节点左侧
相关文章推荐
- Oracle START WITH...CONNECT BY PRIOR的用法
- Oracle start with..Connect By prior..用法实例讲解
- Oracle start with connect by prior 用法
- ORACLE start with… connect by prior 子句用法
- Oracle start with connect by prior 用法
- Oracle start with ... connect by prior 用法
- oracle中START WITH ... CONNECT BY PRIOR的用法
- Oracle start with ... connect by prior 用法
- Oracle start with connect by prior 递归查询用法
- oracle中 sql语句:start with .. connect by prior.. 用法
- oracle 中的select ...connect by prior ...start with 及(+)的用法
- oracle 中的select ...connect by prior ...start with 及(+)的用法
- oracle start with connect by prior 递归查询用法
- oracle 的start with connect by prior 的用法
- Oracle start with connect by prior 用法(递归查询树形结构)
- Oracle_start_with_connect_by_prior_用法
- Oracle_start_with_connect_by_prior_用法
- oracle中 sql语句:start with .. connect by prior.. 用法
- oracle start with connect by prior 用法
- Oracle 树操作(select…start with…connect by…prior)