我有一个表作为CorporateStructure,如下所示:
╔════╦════════╦═════════════╗
║ Id ║ Name ║ HierarchyId ║
╠════╬════════╬═════════════╣
║ 1 ║ john ║ / ║
║ 2 ║ smith ║ /1 ║
║ 3 ║ John2 ║ /1/1/ ║
║ 4 ║ Collin ║ /1/1/1 ║
╚════╩════════╩═════════════╝
我有ID 4,我想找到父母,我该怎么做?
此致 维沙尔
答案 0 :(得分:3)
正如迈克尔指出史密斯(/1
)和科林(/1/1/1
)的字面值似乎不是有效的HierarchyId
更正这些值,您可以使用GetAncestor
试试这个: -
Select * from YourTable
where [HierarchyId] in (
Select [HierarchyId].GetAncestor([HierarchyId].GetLevel()-1).ToString()
from YourTable
where id=4
)