3

我将如何只查询“只有叶节点”(即没有子节点)的记录?

我试过这样的查询:

select *
from TableA tt
where tt.HierarchyId.GetDescendant(null, null) not in 
(
    Select  t.HierarchyId
    from TableA t
)

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

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

4

1 回答 1

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;
于 2012-05-22T02:48:30.237 回答