不同資料庫對樹狀資料遞迴查詢支援

2021-09-05 13:18:58 字數 957 閱讀 7865

oracle對樹形資料的遞迴查詢使用connect子句,例如:

以下內容為程式**:

id, parentid, 

level

from

treenode 

start 

with

id ='a2

'connect 

byprior id 

=parentid

在db2和最新的ms sql server 2005中也支援遞迴查詢。sql server 2005和db 2語法是相似的。

如上的sql在db 2中應為:

with

sub_table (id, parentid, 

level

) as(

select

id, parentid, 

0from

treenode 

where

id ='a2

'union

allselect

prior_tab.id, prior_tab.parentid, ksql_sub_table.

level+1

from

(select

id, parentid, 

level

from

treenode) prior_tab, sub_table 

where

sub_table.id 

=prior_tab.parentid

)select

id, parentid, 

level

from

sub_table

db2中遞迴查詢使用起來,比oracle的麻煩。oracle中引入了prior關鍵字,使得遞迴查詢變得簡單。

ms sql server在最新2005的版本中,終於支援遞迴查詢了,相比起oracle和db2,落後了好多年喲!!

資料庫遞迴查詢

今天工作看同事 用到了start with.connect by prior,不知道什麼意思,查詢了一些資料,以下是比較好理解的。oracle中的select語句可以用start with.connect by prior子句實現遞迴查詢,connect by 是結構化查詢中用到的,其基本語法是 s...

MySQL不同表查詢,不同資料庫查詢

內容比較弱 歡迎大神們指點 在mysql中 要實現不同表的查詢和不同資料庫的查詢,首先得有地方查吧 1 建立資料庫 create databaes test use test create table pet id int,name varchar 20 create table user id i...

資料庫遞迴查詢(CET)

if object id ta isnotnull droptable ta go createtableta id int,name nvarchar 4 parentid nvarchar 2 go insertintota select1,河北省 0 unionall select2,邢台市 ...