0
我有一个问题: 表一:SQL,OrgNode,层次
SELECT OrgNode as 'hierarchyid'
, OrgLevel as "non-type '
, UniCODOBJ as 'uniqueidentifier'
, BitREQUIRED as "bit"
, StrField as 'nvarchar (50)'
, StrTITLE_FIELD as 'nvarchar (50)'
, IntCODE_LENGTH as 'int'
OF BOX_HIERARCHY
和我有查询:
DECLARE @CurrentNode hierarchyid
SELECT @ CurrentNode = OrgNode
OF BOX_HIERARCHY
where uniCODOBJ = 'CBC33732-2E4C-4103-887A-B968E53C0E05';
SELECT OrgNode, OrgNode.ToString()
, OrgLevel
, uniCODOBJ
, bitREQUIRED
, strField
, strTITLE_FIELD
, intCODE_LENGTH
of BOX_HIERARCHY
where OrgNode.IsDescendantOf (@CurrentNode) = 1
但是,这个查询返回:
OrgNode OrgNode.string OrgLevel BitRequired
0x78/3/1 1
0x7AC0/3/1/2 1
0x7AD6/3/1/1/3 0
0x7AD6B0/3/1/1/1/4 0
0x7AD6B580/3/1/1/1/1/5 1
0x7AD6B5AC/3/1/1/1/1/1/6 1
因为OrgNode - > 0x78有uniCODOBJ:CBC33732-2E4C-4103-887A-B968E53C0E05
我的问题在哪里? 直子只需要:
与OrgNode - > 0x78只有1个孩子直接
OrgNode OrgNode.string OrgLevel BitRequired
0x78/3/1 1
0x7AC0/3/1/2 1
与OrgNode - > 0x7AC0 3个可能直接孩子 OrgNode OrgNode.string OrgLevel BitRequired
0x7AC0/3/1/2 1
0x7AD6/3/1/1/3 0
0x7AD6B0/3/1/1/1/4 0
0x7AD6B580/3/1/1/1/1/5 1
我很感兴趣,以查询wh ich以获得所有可能的直接孩子 但该查询返回我所有亲属儿童 如果我必须经过3个级别,因为在0x7AD6B5AC情况是在6级,3级至少为0x78和咨询为0x78,它返回所有我,我不在乎。