成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術(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ù)庫
主站蜘蛛池模板: 国内精品免费一区二区观看 | 亚洲第一成人天堂第一 | 亚洲精品国产综合久久一线 | 国产亚洲欧美视频 | 国内一区| 中国美女隐私无遮挡免费视频 | 亚洲高清视频在线观看 | 在线观看精品视频一区二区三区 | 久久国产视频一区 | 夜夜春夜夜夜夜猛噜噜噜噜噜 | 在线日韩欧美一区二区三区 | 久久精品店 | 国产欧美视频综合二区 | 精品国产欧美一区二区最新 | 免费看一片| 国产一区私人高清影院 | 国产高清在线 | 日本毛片在线看 | 亚洲va久久久噜噜噜久久狠狠 | 美女被免费网站在线软件 | 欧美成a人片在线观看久 | 国产欧美日本在线 | 三级网址在线 | 日韩一级黄色 | 男女免费视频 | 欧美一级纶理片免费 | 日本草草影院 | 亚洲精品毛片久久久久久久 | 男人女人做黄刺激性视频免费 | 国产成人www免费人成看片 | 国产高清自拍一区 | aaaaaa精品视频在线观看 | 国产日韩三级 | 老头做爰xxxx视频 | 国产亚洲一区在线 | 97久久精品一区二区三区 | 亚洲精品不卡午夜精品 | 久久91精品国产91久久户 | 精品国产精品国产 | 在线成人97观看 | 酒色影院|