建立汽車的材料清單
在這個練習中,你要回答:組成一輛車的各個元件,各自位於哪一個階層?
例如,SUV(第 1 層)由引擎(第 2 層)與車身(第 2 層)組成;車身則由車門(第 3 層)與引擋蓋(第 3 層)構成。
你的任務是撰寫查詢,以取得資料表 partList 的階層等級。你需要建立 CTE construction_Plan,並追蹤每個元件在階層中的位置。請從第 1 層開始,追蹤所有元件到第 2 層為止。
本練習屬於課程
SQL Server 的階層式與遞迴查詢
練習說明
- 定義
construction_Plan,欄位包含:PartID、SubPartID、Title、Component和Level。 - 將欄位
Level初始化為 1。 - 在每一次遞迴步驟中將
Level加 1。 - 將步驟數(
Level)限制為小於2。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
-- Define CTE with the fields: PartID, SubPartID, Title, Component, Level
___ construction_Plan (___, ___,___, ___, ___) AS (
SELECT
PartID,
SubPartID,
Title,
Component,
-- Initialize the field Level
___
FROM partList
WHERE PartID = '1'
UNION ALL
SELECT
CHILD.PartID,
CHILD.SubPartID,
CHILD.Title,
CHILD.Component,
-- Increment the field Level each recursion step
PARENT.___ + ___
FROM construction_Plan PARENT, partList CHILD
WHERE CHILD.SubPartID = PARENT.PartID
-- Limit the number of iterations to Level < 2
AND PARENT.___ < ___)
SELECT DISTINCT PartID, SubPartID, Title, Component, Level
FROM construction_Plan
ORDER BY PartID, SubPartID, Level;