3
樣本數據的返回其在層次結構中第N級的類別的名稱(類別與parentId的-1是在第一級)
WITH sample_data AS (
SELECT CategoryId,
ParentCategoryId,
Name,
Keywords
FROM (VALUES
(100, -1, 'business', 'Money'),
(200, -1, 'tutoring', 'teaching'),
(101, 100, 'Accountting', 'taxes'),
(102, 100, 'Taxation', NULL),
(201, 200, 'Computer', NULL),
(103, 101, 'Corporate Tax', NULL),
(202, 201, 'operating system', NULL),
(109, 101, 'Small business Tax', NULL)) as c(CategoryId, ParentCategoryId, Name, Keywords)
)
樣品輸入/輸出:
Input: 2
Output: 101, 102, 201
Input: 3
Output: 103, 109, 202
我一直在嘗試與GROUP BY類,但它不能正常工作,能有人幫我出遞歸CTE這樣做(我很新)
TIA
這裏'輸入:2' - 2點,哪一列?例如。如果它指向'ParentCategoryID'則輸出應該是''101,102'。 201如何輸出? –
@Krishnraj if parentcategoryid = -1那麼它是第一級,所以如果輸入是2(那意味着第二級),那麼如果你看到類別ID 100和200已經在第一級別,所以類別ID 101,102,201將落入第二級別bcoz他們的parentcatergoryid是第一級(100和200)。如果你看到輸入3(第三級)103,202,109,parentcategoryid來自第二級(101,201,101),所以它們落入第三級。 – Ramesh