เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สร้างรายการชิ้นส่วนของรถยนต์

ในแบบฝึกหัดนี้ คุณจะตอบคำถามต่อไปนี้: แต่ละชิ้นส่วนของรถยนต์อยู่ในระดับใดของลำดับชั้น?

ตัวอย่างเช่น รถ SUV (ระดับที่ 1) ประกอบด้วยเครื่องยนต์ (ระดับที่ 2) และตัวถัง (ระดับที่ 2) และตัวถังประกอบด้วยประตู (ระดับที่ 3) และฝากระโปรง (ระดับที่ 3)

ให้สร้างคิวรีเพื่อดึงระดับลำดับชั้นจากตาราง partList โดยสร้าง CTE ชื่อ construction_Plan เพื่อติดตามตำแหน่งของแต่ละชิ้นส่วนในลำดับชั้น ครอบคลุมทุกชิ้นส่วนตั้งแต่ระดับ 1 จนถึงระดับ 2

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Hierarchical and Recursive Queries in 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;
แก้ไขและรันโค้ด