如何使用hierarchyid数据类型查找父级

Luk*_*101 1 c# hierarchical-data sql-server-2008

当我尝试查找单个父节点时,此代码不起作用

declare @val hierarchyid
select @val = dbo.GetHierarchyIDbyID(30)

--get the parent
select * from NodeHierarchy
where @val.GetAncestor(NodeHierarchyID) = 1
Run Code Online (Sandbox Code Playgroud)

你怎么去寻找父母?

Dar*_*Lom 6

假设包含层次结构ID的字段的名称是"hid",您可以执行以下操作:

DECLARE @val HIERARCHYID  
SELECT @val = dbo.GetHierarchyIDbyID(30)  
SELECT * FROM NodeHierarchy WHERE hid = @val.GetAncestor(1)
Run Code Online (Sandbox Code Playgroud)