基于下表(为清晰起见,我在行之间保留了空格)
Path
-----------
\node1\node2\node3
\node1\node2\node3\node5
\node1\node6\node3
\node1\node4\node3
\node1\node4\node3\node7
\node1\node4\node3\node8
\node1\node4\node3\node9
\node1\node4\node3\node9\node10
我想获取包含叶节点的所有路径。因此,例如,以下将被视为叶节点 for path \ node1 \ node4 \ node3
\node1\node4\node3\node7
\node1\node4\node3\node8
\node1\node4\node3\node9\node10
以下是输出:
Output
---------------------------
\node1\node2\node3\node5
\node1\node6\node3
\node1\node4\node3\node7
\node1\node4\node3\node8
\node1\node4\node3\node9\node10
PLS。建议。感谢。
答案 0 :(得分:2)
您想要查找所有叶子,这些叶子是未包含在任何其他路径中的所有路径。您可以通过检查每个路径是否存在包含它的其他路径来执行此操作,如下所示:
SELECT Path FROM Table1 T1
WHERE NOT EXISTS (
SELECT NULL
FROM Table1 T2
WHERE T2.Path LIKE T1.Path + '\%'
)
结果:
Path
\node1\node2\node3\node5
\node1\node6\node3
\node1\node4\node3\node7
\node1\node4\node3\node8
\node1\node4\node3\node9\node10
答案 1 :(得分:0)
like
子句似乎可以解决问题:
select Path
from YourTable
where Path like '%\node3\%'
or Path like '%\node3'
or Path like 'node3\%'