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 に答える