oracle遞迴查詢(查詢條件ID下得所有子集)

2021-09-07 09:30:37 字數 909 閱讀 4395

一、create table tbl_test

(id    number,

name  varchar2(100 byte),

pid   number                                  default 0

)insert into tbl_test(id,name,pid) values('1','10','0');

insert into tbl_test(id,name,pid) values('2','11','1');

insert into tbl_test(id,name,pid) values('3','20','0');

insert into tbl_test(id,name,pid) values('4','12','1');

insert into tbl_test(id,name,pid) values('5','121','2');

二、格式

select * from …. where [結果過濾條件語句]

start with  [and起始條件過濾語句]

connect by prior [and中間記錄過濾條件語句]

三、查詢所有下級

select * from tbl_test start with id=1 connect by prior id=pid

注意:此sql能查詢id=1的資料的所有下級,寫sql語句時要注意,因為是從id開始查詢下級,所以connect by prior 子句的條件是         id=pid

四、查詢所有上級

select * from tbl_test start with id=5 connect by prior pid=id

因為是從id開始查詢上級,所以connect by prior 子句的條件是pid=d

oracle 遞迴查詢 Oracle遞迴查詢

1.1 建立表與插入資料 create table district id number 10 not null,parent id number 10 name varchar2 255 byte not null alter table district add constraint distr...

Oracle條件查詢

條件查詢 關係運算子 邏輯運算子 and or not 其他運算子 like 模糊查詢 in set 在某個區間內 between and.在某個區間內 is not 判斷為空 is not null 判斷不為空 查詢每月能得到獎金的員工資訊 select from emp select from ...

Oracle 條件查詢 模糊查詢

示例 1 查詢出工資高於3000的員工資訊 select froms emp e where e.salary 3000 2 查詢出名為carmen的員工所有資訊 select from s emp e wheree.first name carmen oracle sql 關鍵字,表名,列名等不區...