问题:我需要从hierarchyID中推断出parentID。
示例:我的columnID为8,我当前的hierarchyID为/1/2/4/8
。当我致电columnName.GetAncestor(1)
时,这会给我/1/2/4/
。我需要的是4
的ID。
我该怎么做?或者hierarchyID只是为了加入?
我正在调查SqlHierarchyID.Parse(),但我不明白如何使用它。
答案 0 :(得分:1)
为了获取GetAncestor(1)hierarchyid的另一个字段值,您需要像这样进行内部连接:
SELECT A.hid, A.myid, B.hid, B.myid
FROM dbo.mytable A
INNER JOIN dbo.mytable B ON A.hid.GetAncestor(1) = B.hid
这将返回每一行,其父项位于同一行(但可能会错过根行,但是如果你添加一个WHERE子句来获取你感兴趣的hid,那么这应该足够了。)