SQL Server 樹形表非迴圈遞迴查詢

2021-07-22 09:05:57 字數 1185 閱讀 9497

很多人可能想要查詢整個樹形表關聯的內容都會通過迴圈遞迴來查...事實上在微軟在sql2005或以上版本就能用別的語法進行查詢,下面是示例。

--

通過子節點查詢父節點

with

tree

as(

select

*from

tstructure

where id =

6--

要查詢的子 id

union

allselect tstructure.*

from

tstructure, tree

where tree.parent =

tstructure.id

) select

*from

tree

--通過父節點查詢子節點

with

tree

as(

select

*from

tstructure

where parent =

2--

要查詢的父 id

union

allselect tstructure.*

from

tstructure, tree

where tstructure.parent =

tree.id

) select

*from tree

來乙個我現實中用到的**吧

with

tree as

(

select

*from

[shar

].[t_module

]where url=''

union

allselect

[shar

].[t_module

].*from

[shar

].[t_module

], tree where tree.fid =

[shar

].[t_module

].id

) select

distinct

*from tree order

by code desc

雙向鍊錶(非迴圈)

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。1 標頭檔案 dilst.h pragma once 帶頭結點的雙向鍊錶 非迴圈 typedef struct dnode d...

sql server 語句 迴圈 游標 臨時表

create table tmp i sarinfor varchar 10 建立乙個臨時表 insert into tmp select a.i sailorinfoid from cert sailorletter a left join crew sailorinfo b on a.i sai...

SQL SERVER 游標迴圈讀取表資料

cursor 游標 用於迴圈錶行資料,類似指標 格式如下 declare tempindex cursor for select from table 定義游標 open tempindex 開啟游標 fetch next from tempindex into x 抓取下一行資料給變數 while...