0

问题:我需要从hierarchyID 中推断出parentID。

示例:我的 columnID 是 8,我当前的 hierarchyID 是 /1/2/4/8. 当我打电话时 columnName.GetAncestor(1),这会给我/1/2/4/。我需要的是4.

我该怎么做呢?或者是hierarchyIDs 只是为了加入?

我正在研究SqlHierarchyID.Parse()但我不明白如何使用它。

4

1 回答 1

2

为了获得 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 子句来获取您感兴趣的隐藏,那么这就足够了)。

于 2014-08-22T05:37:14.910 回答