oracle 10g 中的遞迴查詢(樹型查詢)
一、樹型表結構:
節點id 上級id 節點名稱
二、公式:
select 節點id,節點名稱,level
from 表
connect by prior 節點id=上級節點id
start with 上級節點id=節點值
說明:1、常見的樹形結構為公司組織機構、地區……
2、求節點id以上的結構,或以上的結構,將「節點id=上級節點id」左右順序換一下即可。
3、level為oracle的特殊字段,表示「層」的意思。當前節點id的下一層節點為「1」。
測試sql: 1,建立表結構
create table dept(
departno varchar2(10),
departname varchar2(20),
topno varchar2(10)
);插入資料:
insert into dept values('001',' 董事會','0');
commit;
insert into dept values('002','總裁辦 ','001');
commit;
insert into dept values('003','財務部 ','001');
commit;
insert into dept values('004','市場部 ','002');
commit;
insert into dept values('005','公關部 ','002');
commit;
insert into dept values('006','銷售部 ','002');
commit;
insert into dept values('007','分銷處 ','006');
commit;
insert into dept values('008','業務拓展處','004');
commit;
insert into dept values('009','銷售科','007');
commit;
1,向前查 (從查詢本身一直到最上面的機構)
比如:select distinct departno,departname,level
from dept
connect by prior topno=departno
start with
departno='005';
2,向後查:(從查詢本身一直到最下面的機構)
select distinct departno,departname,level
from dept
connect by prior departno=topno
start with
topno='001';
cond2是連線條件,其中用prior表示上一條記錄,比如 connect by prior id=praentid就是說上一條記錄的id(比如根記錄)是(下一條)本條記錄的praentid,即本記錄的父親是上一條記錄。
Oracle 10g 中的遞迴查詢 樹型查詢
一 樹型表結構 節點id 上級id 節點名稱 二 公式 select 節點id,節點名稱,level from 表connect byprior 節點id 上級節點id start with 上級節點id 節點值 說明 1 常見的樹形結構為公司組織機構 地區 2 求節點id以上的結構,或以上的結構,...
oracle10g 解除安裝
1 oracle 10g解除安裝軟體環境 1 windows xp oracle 10g2 oracle 安裝路徑為 d oracle 實現方法 1 開始 設定 控制面板 管理工具 服務停止所有 oracle 服務 2 開始 程式 oracle oradb 10g home1 oracle inst...
Oracle10g解除安裝
一 軟體解除安裝 1 windows xp oracle 10g 2 oracle安裝路徑為 d oracle 1 如果資料庫配置了自動儲存管理 asm 應該先刪除聚集同步服務css cluster synchronization services 刪除css服務的方法是在dos命令列中執行如下命令...