我有一个关于为分层查询返回的结果子树编写查询的问题。
本质上,我必须从具有组织和子组织的表中提取数据。这些组织是分层的,并使用数字序列作为标识符。一个名称可以分配给多个组织。我已经有这个标准的部分编写和工作(它在下面)。
但是,现在我必须为即将到来的网页返回子树的结果(这个段就是现在要编写的内容)。它将返回搜索功能的结果,用户可以在其中输入名称,并可以查看与该名称关联的所有组织代码。我不知道如何使用分层查询来做到这一点,任何帮助都将不胜感激。
这是分层查询的工作代码:
WITH OrgCode_hierarchy (ParentOrgCodeID, OrgCodeID, OrgCode, OrgName, OrgCodeSortOrder, LEVEL) AS
(
SELECT o_base.ParentOrgCodeID, o_base.OrgCodeID, o_base.OrgCode, o_base.OrgName, cast('::' + o_base.OrgCode + '::' AS VARCHAR (200)) AS OrgCodeSortOrder, 0 AS LEVEL
FROM L_OrgCode o_base
WHERE o_base.OrgCode is not null
UNION all
SELECT o_child.ParentOrgCodeID, o_child.OrgCodeID, o_child.OrgCode, o_child.OrgName, cast (ho.OrgCodeSortOrder + CASE WHEN left(o_child.OrgCode, 2) = '::' THEN '::' ELSE '' END + o_child.OrgCode + '::' AS VARCHAR (200)) AS OrgCodeSortOrder, LEVEL + 1 AS LEVEL
FROM L_OrgCode o_child
inner join OrgCode_hierarchy ho on o_child.ParentOrgCodeID = ho.OrgCodeID
)
SELECT DISTINCT ParentOrgCodeID, OrgCodeID, OrgCode, OrgName, OrgCodeSortOrder, LEVEL
FROM OrgCode_hierarchy
ORDER BY 1
以下是该查询返回的结果示例:
再次感谢!