如何使用start with connect by prior递归用法
浏览量:2840
时间:2024-01-16 21:51:50
作者:采采
在Oracle数据库中,当需要查询树结构类型的数据时,可以使用start with connect by prior递归查询。这种方法非常方便,只需指定一个起始节点,就能查询到该节点以上以及以下的所有树形层级。
创建测试表
为了更好地介绍如何使用start with connect by prior递归查询,首先需要创建一个测试表,并结合示例来说明。
CREATE TABLE t_menu(
menu_id varchar2(32),
parent_id varchar2(32)
);
INSERT INTO t_menu VALUES ('1', '');
INSERT INTO t_menu VALUES ('2', '1');
INSERT INTO t_menu VALUES ('3', '1');
INSERT INTO t_menu VALUES ('4', '2');
INSERT INTO t_menu VALUES ('5', '3');
INSERT INTO t_menu VALUES ('6', '4');
COMMIT;
SELECT * FROM t_menu;
查看表结构
为了简单起见,表t_menu只有两个字段:menu_id和parent_id。
向下递归查询
为了演示向下递归查询,选择menu_id为4的节点作为起始节点。以下是查询语句:
SELECT _id, _id, level
FROM t_menu t
START WITH _id '4'
CONNECT BY _id PRIOR _id;
PRIOR关键字的位置,与menu_id放在一起,表示向下查询。
向上递归查询
为了演示向上递归查询,选择menu_id为4的节点作为起始节点。以下是查询语句:
SELECT _id, _id, level
FROM t_menu t
START WITH _id '4'
CONNECT BY PRIOR _id _id;
PRIOR关键字和parent_id放在一起,表示按照父节点方向向上查询。
添加筛选条件
在以上查询语句中,还可以添加where条件语句,在递归查询结果集中根据条件进行筛选。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。