这篇文章距离最后更新已过287 天,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
递归查询分类树
-- 递归查询分类树
WITH CategoryTree AS (
-- 基础查询:获取所有一级分类(Code长度为1和2)
SELECT
ID,
Code,
Code AS FullCode, -- 父级编码(用于递归子级使用)
1 AS Level, -- 层级
CAST(Code AS VARCHAR(1000)) AS Path -- 分类层级平铺
FROM CBO_Category
WHERE
Org = 1002111230110267 -- 组织ID
AND LEN(Code) in(1,2)
UNION ALL
-- 递归查询:获取子分类
SELECT
t.ID,
t.Code,
t.Code AS FullCode,
ct.Level + 1 AS Level,
CAST(CONCAT(ct.Path, '_', t.Code) AS VARCHAR(1000)) AS Path -- 使用相同的类型和长度
FROM CBO_Category AS t
JOIN CategoryTree AS ct ON
LEN(t.Code) = LEN(ct.FullCode) + 2 AND
t.Code LIKE CONCAT(ct.FullCode, '%')
WHERE
Org = 1002111230110267 -- 组织ID
AND t.Code <> ct.FullCode
)
SELECT
ID,
Code,
Level,
Path
FROM CategoryTree
ORDER BY Path;
版权声明:
本文严禁转载,引用或转载文章前请先联系博主!