色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(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ù)庫
主站蜘蛛池模板: 国产主播大尺度精品福利 | 欧美一级毛片日韩一级 | 亚洲三级免费观看 | 国产成人a福利在线观看 | 一级特黄国产高清毛片97看片 | 色综合九九 | 夜夜爱夜夜爽夜夜做夜夜欢 | 国产精品久久精品 | 免费一级a毛片免费观看欧美大片 | 末满18以下勿进色禁网站 | 国产精品成人免费观看 | 在线日韩国产 | 最新国产午夜精品视频成人 | 国产成人精品日本亚洲网站 | 国产精品极品 | 日本免费在线观看视频 | 国产黄三级三·级三级 | 日韩中文字幕网站 | 国产一级精品高清一级毛片 | 亚洲福利影院 | 全免费a级毛片免费看 | 禁止18周岁进入免费网站观看 | 成人18视频在线观看 | 国产欧美精品一区二区三区 | 久久精品国产午夜伦班片 | 国产成人刺激视频在线观看 | 日本免费一二区视频 | 成人国产在线视频在线观看 | 精品日韩欧美一区二区三区在线播放 | 手机国产日韩高清免费看片 | 亚洲国产精品一区二区久 | 99re国产视频 | 中文字幕在亚洲第一在线 | 国产精品国产三级国产专区5o | 日韩在线看片中文字幕不卡 | 在线观看亚洲免费视频 | 久久久午夜精品理论片 | 欧美国产成人在线 | 午夜爽爽性刺激一区二区视频 | 美女视频黄色的免费 | 美女黄页网 |