使用HierarchyID查找所有叶节点记录
-
12-12-2019 - |
题
如何才能查询仅为“仅叶节点”的记录查询 (即没有孩子)?
我已经尝试过这样的查询:
select *
from TableA tt
where tt.HierarchyId.GetDescendant(null, null) not in
(
Select t.HierarchyId
from TableA t
)
.
但似乎返回一些有孩子的节点。
我正在使用内置的hierarchyid数据类型(ms sqlserver的一部分)
解决方案
SELECT A.HieracrchyId, A.HierarchyId.ToString()
FROM dbo.TableA AS A
LEFT OUTER JOIN dbo.TableA AS B
ON A.HierarchyId = B.HierarchyId.GetAncestor(1)
WHERE B.HierarchyId IS NULL;
. 不隶属于 StackOverflow