使用hierarchyid查找所有叶节点记录

Mar*_*rty 3 sql-server hierarchyid sql-server-2008

我将如何仅查询"仅叶子节点"(即没有孩子)的记录?

我尝试过这样的查询:

select *
from TableA tt
where tt.HierarchyId.GetDescendant(null, null) not in 
(
    Select  t.HierarchyId
    from TableA t
)
Run Code Online (Sandbox Code Playgroud)

但这仍然似乎返回了一些有孩子的节点.

我正在使用内置的hierarchyid数据类型(ms sqlserver的一部分)

Aar*_*and 6

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;
Run Code Online (Sandbox Code Playgroud)