亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server 2005數(shù)據(jù)庫中表的遞歸查詢

瀏覽:62日期:2023-11-04 19:19:02
遞歸查詢對(duì)于同一個(gè)表父子關(guān)系的計(jì)算提供了很大的方便,這個(gè)示例使用了SQL server 2005中的遞歸查詢,使用的表是CarParts,這個(gè)表存儲(chǔ)了一輛汽車的所有零件以及結(jié)構(gòu),part為零件單位,subpart為子零件,Qty為數(shù)量。

具體示例如下:

*/

CREATE TABLE CarParts

(

CarID INT NOT NULL,

Part VARCHAR(15),

SubPart VARCHAR(15),

Qty INT

)

GO

INSERT CarParts VALUES (1, 'Body', 'Door', 4)

INSERT CarParts VALUES (1, 'Body', 'Trunk Lid', 1)

INSERT CarParts VALUES (1, 'Body', 'Car Hood', 1)

INSERT CarParts VALUES (1, 'Door', 'Handle', 1)

INSERT CarParts VALUES (1, 'Door', 'Lock', 1)

INSERT CarParts VALUES (1, 'Door', 'Window', 1)

INSERT CarParts VALUES (1, 'Body', 'Rivets', 1000)

INSERT CarParts VALUES (1, 'Door', 'Rivets', 100)

INSERT CarParts VALUES (1, 'Door', 'Mirror', 1)

INSERT CarParts VALUES (1, 'Mirror', 'small_Mirror', 4)

GO

SELECT * FROM CarParts

GO

/*

一輛汽車需要各個(gè)零件的數(shù)目

1個(gè)Body 需要4個(gè)Door

1個(gè)Door 需要1個(gè)Mirror

那么

1個(gè)body需要4個(gè)Mirror

結(jié)構(gòu)很簡單吧

*/

WITH CarPartsCTE(SubPart, Qty)

AS

(

-- 固定成員 (AM):

-- SELECT查詢無需參考CarPartsCTE

-- 遞歸從此處開始

SELECT SubPart, Qty

FROM CarParts

WHERE Part = 'Body'

UNION ALL

-- 遞歸成員 (RM):

-- SELECT查詢參考CarPartsCTE

-- 使用現(xiàn)有數(shù)據(jù)往下一層展開

SELECT CarParts.SubPart, CarPartsCTE.Qty * CarParts.Qty

FROM CarPartsCTE

INNER JOIN CarParts ON CarPartsCTE.SubPart = CarParts.Part

WHERE CarParts.CarID = 1

)

SELECT SubPart,Qty AS TotalNUM

FROM CarPartsCTE

/*

注意看最下層的small_Mirror 位于 表最后的位置,

由此可以看出改遞歸不是開始就進(jìn)行遞歸查詢而是在1層完全展開后在根據(jù)該層展開下一層不是深度優(yōu)先的遞歸

*/

drop table CarParts

--------------------------------result---------------------------------------

CarID Part SubPart Qty

----------- --------------- --------------- -----------

1 Body Door 4

1 Body Trunk Lid 1

1 Body Car Hood 1

1 Door Handle 1

1 Door Lock 1

1 Door Window 1

1 Body Rivets 1000

1 Door Rivets 100

1 Door Mirror 1

1 Mirror small_Mirror 4

(10 row(s) affected)

SubPart TotalNUM

--------------- -----------

Door 4

Trunk Lid 1

Car Hood 1

Rivets 1000

Handle 4

Lock 4

Window 4

Rivets 400

Mirror 4

small_Mirror 16

(10 row(s) affected)

示例:

以下示例顯示經(jīng)理以及向經(jīng)理報(bào)告的雇員的層次列表。

WITH DirectReports(groupid, member, EmployeeLevel,type) AS

(

SELECT groupid, member, 0,type AS EmployeeLevel

FROM groupinfo

WHERE groupid = 'finance_company'

UNION ALL

SELECT e.groupid, e.member, EmployeeLevel + 1,e.type

FROM groupinfo e

INNER JOIN DirectReports d

ON e.groupid = d.member

)

SELECT b.nickname,groupid, member, EmployeeLevel,type

FROM DirectReports,userbasicinfo b

where DirectReports.member=b.id

and type = 1

標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: 国产自在自线午夜精品 | 欧美成人一级视频 | 国产99精品在线观看 | 欧美性活一级视频 | 91精品国产91久久 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 精品久久久久久中文字幕一区 | 国产偷国产偷亚洲高清午夜 | 成人看片黄a毛片 | 亚洲一级毛片在线观播放 | 欧美一级毛片免费看 | 亚洲一区二区久久 | 精品国产高清在线看国产 | a级毛片毛片免费很很综合 a级毛片免费 | 日韩高清不卡在线 | 一区二区三区免费在线视频 | 国产精品自在线 | 午夜精品尤物福利视频在线 | 在线满18网站观看视频 | 91精品成人免费国产 | 国产精品视频成人 | 亚洲日韩精品欧美一区二区 | 美女舒服好紧太爽了视频 | 午夜mm131美女做爰视频 | 日本三级成人中文字幕乱码 | 国产看片一区二区三区 | 久久久久亚洲日日精品 | 中文字幕国产一区 | 欧美最大成人毛片视频网站 | 日韩视频免费一区二区三区 | 亚洲国产精品一区二区首页 | 国产午夜毛片一区二区三区 | 在线成人免费观看国产精品 | 亚洲看片网 | 综合 欧美 国产 视频二区 | 手机国产精品一区二区 | 欧美日韩生活片 | 成人国产三级在线播放 | 富二代精品视频 | 成人69视频在线观看免费 | 99视频网站 |