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,它返回所有我,我不在乎。