oracle里的递归查询怎么写?

 我来答
更时时来吉祥6
2016-09-18 · TA获得超过2385个赞
知道小有建树答主
回答量:146
采纳率:66%
帮助的人:61万
展开全部
关键字:START WITH ... CONNECT BY PRIOR

select t.*,level from table_test t
start with p_id = '3'
connect by p_id = prior s_id; --查询p_id为3的所有子孙id

select t.*,level from table_test t
start with p_id = '3'
connect by prior p_id = s_id; --查询p_id为3的所有父辈id
梦想实现家life
推荐于2018-04-10 · TA获得超过685个赞
知道小有建树答主
回答量:244
采纳率:60%
帮助的人:91.7万
展开全部
CREATE TABLE SC_DISTRICT
(
ID NUMBER(10) NOT NULL,
PARENT_ID NUMBER(10),
NAME VARCHAR2(255 BYTE) NOT NULL
);

ALTER TABLE SC_DISTRICT ADD (
CONSTRAINT SC_DISTRICT_PK
PRIMARY KEY
(ID));

ALTER TABLE SC_DISTRICT ADD (
CONSTRAINT SC_DISTRICT_R01
FOREIGN KEY (PARENT_ID)
REFERENCES SC_DISTRICT (ID));

INSERT INTO SC_DISTRICT(ID,NAME) VALUES(1,'湖北省');

INSERT INTO SC_DISTRICT(ID,PARENT_ID,NAME) VALUES(2,1,'武汉市');
INSERT INTO SC_DISTRICT(ID,PARENT_ID,NAME) VALUES(3,1,'黄冈市');

INSERT INTO SC_DISTRICT(ID,PARENT_ID,NAME) VALUES(4,2,'武昌区');
INSERT INTO SC_DISTRICT(ID,PARENT_ID,NAME) VALUES(5,2,'汉口镇');
INSERT INTO SC_DISTRICT(ID,PARENT_ID,NAME) VALUES(6,2,'黄梅县');
查询武汉市下面的所有行政组织(结果包含当前节点):
SELECT *
FROM SC_DISTRICT
START WITH NAME='武汉市'
CONNECT BY PRIOR ID=PARENT_ID

IT JOB 远 标
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式