ORACLE 遞迴查詢的兩種方法。

2021-10-01 13:55:45 字數 969 閱讀 9444

1. 我們建乙個表 test2 舉例說明 oracle 遞迴查詢的兩種方法。

資料結構如下:

2. 我們的目標是查詢a1下面所有的子節點和所處層級。

a.通用做法:寫乙個遞迴sql 如下

select t.*, level

from test2 t

start with t.father = 'a1'

connect by t.father = prior t.child

order by level

結果:

b.替代做法:

with all_test(father,

child,

levelno) as

(select t.father, t.child, 1

from test2 t

where t.father = 'a1'

union all

select t2.father, t2.child, at.levelno + 1

from test2 t2, all_test at

where at.child = t2.father)

select * from all_test

結果:

3. 從以上兩種結果來看,結果一樣。經測試資料量很大的情況下,b,替代做法效率較高。

列表查詢的兩種方法

列表查詢 從列表中查詢指定元素 輸入 列表 待查詢元素 輸出 元素下標或未找到元素 二分查詢 1.順序查詢 時間複雜度為o n def linear search data set,value for i in range len data set if value data set i retur...

OleDB連線Oracle的兩種方法

也是老問題了,乾脆總結一下寫在這裡,免得下次碰到又是無頭蒼蠅一般狂翻資料。通過oledb連線oracle資料庫,一般有兩種provider a provider msdaora.1 b provider oraoledb.oracle 第一種為微軟公司的oracle元件,第二種為oracle的訪問元...

mysql多表查詢的兩種方法

為什麼要用多表查詢?因為我們在涉及表的時候肯定不止一張表。資料準備 建表 create table dep id int primary key auto increment,name varchar 20 create table emp id int primary key auto incre...