午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:17日期:2023-11-04 19:53:23
在SQL Server 2005數(shù)據(jù)庫中,遞歸查詢對于同一個表父子關(guān)系的計算提供了很大的方便,下文中的示例使用了SQL server 2005中的遞歸查詢,使用的表是CarParts,這個表存儲了一輛汽車的所有零件以及結(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

/*

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

1個Body 需要4個Door

1個Door 需要1個Mirror

那么

1個body需要4個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)理報告的雇員的層次列表。

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ù)庫
主站蜘蛛池模板: 日本一区二区三区视频在线观看 | 久久国语对白 | 婷婷伊人综合中文字幕 | 久热这里只有精品6 | 亚洲国产精品久久久 | 午夜爽爽爽男女免费观看 | 亚洲高清在线 | 狠狠操网| 精品欧美激情精品一区 | 精品在线免费观看 | 69性视频 | 久久中文字幕在线 | 国产91精品一区二区 | 在线国产福利 | 少妇一级淫片免费放中国 | 四虎国产成人精品免费一女五男 | 欧美特级特黄aaaaaa在线看 | 骚虎影院在线观看 | 国产精品永久久久久久久久久 | 香蕉影音 | 日日弄天天弄美女bbbb | 亚洲色图美腿丝袜 | 欧美日韩亚洲国产成人 | 国产成人精品久久久 | 国产二区三区 | 插菊综合网 | 国产18在线| 欧美最猛性 | 日韩精品免费一区二区三区 | 黄色大片黄色大片 | 欧美色吊丝 | 生猴子在线观看免费视频 | 免费在线观看视频 | 国产精品久热 | 国产aaaaaaaaa| 超碰66| 久久久www成人免费精品 | 亚洲男人第一天堂 | 二区在线观看 | 黄视频网站在线观看 | 五月综合激情 |