【问题标题】:Sql hierarchyID - finding the lowest child (last node) valueSql hierarchyID - 查找最低子(最后一个节点)值
【发布时间】:2021-08-24 17:20:08
【问题描述】:

假设我的数据库中有这些数据

/

/1/

/1/1/

/1/2/

/1/2/1/

/2/1/

/2/1/1/

/2/2/1/

我想为每一行获取 hirarchyId 中的最后一个孩子

我曾尝试使用 getdecendent 和 getancestor,但它无法满足我的需求

我已经尝试了负数的 getAncestor,认为它可能会从最后开始但没有运气

是否有一种内置方法可以从 hierarchyID 中获取特定级别的值

【问题讨论】:

标签: sql-server hierarchyid


【解决方案1】:

select *, h.GetReparentedValue(isnull(h.GetAncestor(1),h), hierarchyid::GetRoot()/*..or '/' */) as lastnode
from
(
values (cast('/' as hierarchyid)),('/1/'),('/1/2/'),    ('/1/2/3/4/5/')
) as v(h);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多