在一列中获取父级和子级名称变体的串联

问题描述

我有以下分层查询

DECLARE @Id int = 1019;
WITH cte AS 
(
  SELECT a.Id,a.Cat_Fkey,a.CatEName
  FROM tblCategories a
  WHERE Id = @Id
  UNION ALL
  SELECT a.Id,a.CatEName
  FROM tblCategories a JOIN cte c ON a.Cat_Fkey = c.id
)
SELECT Cat_Fkey,Id,CatEName
FROM cte

查询给出以下结果:

Cat_Fkey ID     Name
NULL     1019   Electronics
1019     1089   Mobile
1019     1092   Cameras
1089     1093   Mobile Child

因此,手机和相机是电子产品的子代,而移动儿童是手机的子代。

我的问题是如何在同一列中获得父级和子级名称的串联。

样本输出

Concat_Column
Electronics Mobile
Electronics Cameras
Electronics Mobile Mobile Child

这是如何动态完成的,因此,每当我添加新类别时,查询都将获得所有可能的变体。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)