创建汽车物料清单
在本练习中,您将回答这个问题:构成一辆汽车的不同部件分别处于哪些层级?
例如,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;