亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:28日期:2023-11-04 19:19:02
遞歸查詢(xún)對(duì)于同一個(gè)表父子關(guān)系的計(jì)算提供了很大的方便,這個(gè)示例使用了SQL server 2005中的遞歸查詢(xún),使用的表是CarParts,這個(gè)表存儲(chǔ)了一輛汽車(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

/*

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

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

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

那么

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

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

*/

WITH CarPartsCTE(SubPart, Qty)

AS

(

-- 固定成員 (AM):

-- SELECT查詢(xún)無(wú)需參考CarPartsCTE

-- 遞歸從此處開(kāi)始

SELECT SubPart, Qty

FROM CarParts

WHERE Part = 'Body'

UNION ALL

-- 遞歸成員 (RM):

-- SELECT查詢(xún)參考CarPartsCTE

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

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 位于 表最后的位置,

由此可以看出改遞歸不是開(kāi)始就進(jìn)行遞歸查詢(xún)而是在1層完全展開(kāi)后在根據(jù)該層展開(kāi)下一層不是深度優(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

主站蜘蛛池模板: 精品国产成人三级在线观看 | 亚洲精品区一区二区三区四 | 成年女人色费视频免费 | 黄色网址网站 | 国产精品视频网站 | 午夜一级大片 | 国产色婷婷视频在线观看 | 亚洲欧美在线制服丝袜国产 | 成人污污视频 | 国产精品久久久久久久久免费 | 女人一级毛片 | 一区卡二区卡三区卡视频 | 夜夜嘿视频免费看 | 国产三级做爰在线观看视频 | 奇米网久久 | 三片在线观看 | 国产精品一区二区欧美视频 | 一级毛片高清 | 日韩毛片一级 | 亚洲国产欧美日韩一区二区三区 | 午夜一区二区免费视频 | 亚洲视频一区网站 | 国产大学生一级毛片绿象 | 亚洲国产精品热久久2022 | 日本一级特黄高清ab片 | 草免费视频 | 内地自拍 | 日韩视频免费一区二区三区 | 国产精品入口麻豆免费观看 | 黄色三级毛片视频 | 91丝瓜视频最新版 | 欧美精品在线免费 | 精品三级| 久久久精品视频免费观看 | 5c5c5c精品视频在线观看 | 国产精品18久久久久久小说 | 亚洲欧美久久精品1区2区 | 欧美在线一区二区三区不卡 | 国产精品视频久久 | 深夜做爰性大片中文 | 国产一区二区亚洲精品 |