Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用HierarchyId查找子树下的叶节点?_Sql_Sql Server 2008_Hierarchyid - Fatal编程技术网

Sql 如何使用HierarchyId查找子树下的叶节点?

Sql 如何使用HierarchyId查找子树下的叶节点?,sql,sql-server-2008,hierarchyid,Sql,Sql Server 2008,Hierarchyid,我正在使用SQL Server 2008 HierarchyId维护一个树结构。我的表格结构如下: CREATE TABLE [Employee]( [Id] [int] IDENTITY(1,1) NOT NULL, [HId] [hierarchyid] NOT NULL, [Lvl] AS ([HId].[GetLevel]()) PERSISTED, [Name] [varchar](200) NOT NULL) 所有叶数据不在同一级别。我能找到这张桌子上所有的叶子记录。但我需要找出

我正在使用SQL Server 2008 HierarchyId维护一个树结构。我的表格结构如下:

CREATE TABLE [Employee](
[Id] [int] IDENTITY(1,1) NOT NULL,
[HId] [hierarchyid] NOT NULL,
[Lvl]  AS ([HId].[GetLevel]()) PERSISTED,
[Name] [varchar](200) NOT NULL)
所有叶数据不在同一级别。我能找到这张桌子上所有的叶子记录。但我需要找出任何给定子树的叶数据。换言之,我需要“找到不管理任何其他员工的任何特定经理的所有下属”

样本数据:

Id Path Lvl Name 
1 / 0 Emp1 
2 /1/ 1 Emp2 
3 /1/1/ 2 Emp3 
4 /1/1/1/ 3 Emp4 
5 /1/2/ 2 Emp5 
6 /1/2/1/ 3 Emp6 
7 /1/2/1/1/ 4 Emp7 
8 /1/2/1/2/ 4 Emp8 
9 /1/2/2/ 3 Emp9 
10 /1/2/2/1/ 4 Emp10 
11 /1/2/2/2/ 4 Emp11 
12 /1/2/2/3/ 4 Emp12 
13 /1/2/2/4/ 4 Emp13 
14 /1/2/2/5/ 4 Emp14 
25 /1/2/3/ 3 Emp15 
26 /1/2/3/1/ 4 Emp16 
27 /1/2/3/2/ 4 Emp17 
28 /1/2/4/ 3 Emp18 
29 /1/2/4/1/ 4 Emp19 
30 /1/2/4/2/ 4 Emp20 
15 /1/3/ 2 Emp21 
16 /1/3/1/ 3 Emp22 
18 /1/3/1/1/ 4 Emp23 
19 /1/3/1/2/ 4 Emp24 
17 /1/3/2/ 3 Emp25 
20 /1/3/2/1/ 4 Emp26 
21 /1/3/2/2/ 4 Emp27 
22 /1/3/2/3/ 4 Emp28 
23 /1/3/2/4/ 4 Emp29 
24 /1/3/2/5/ 4 Emp3 

请帮我找到这个。

您需要
isdescendatof
功能

例如:

要查找那些不管理其他文件的文件,请添加

and Hid.GetDescendant(null,null) is null

您需要
isdescendatof
功能

例如:

要查找那些不管理其他文件的文件,请添加

and Hid.GetDescendant(null,null) is null

您好@podiluska,请您给出完整的查询或函数。我尝试了这段代码,但没有返回任何结果:Hi@podiluska,你能给出完整的查询或函数吗。我尝试了这段代码,但它没有返回任何结果:Id路径Lvl Name 1/0 Emp1 2/1/1 Emp2 3/1/1/2 Emp3 4/1/1/1/3 Emp4 5/1/2/2/2/2 Emp5 6/1/2/1/3 Emp6 7/1/2/1/1/1/4 Emp7 8/1/2/1/2/2/2/2/2/2/2 Emp9 2/2/2/2/4 Emp9 10 10 10 11 11 11 Emp12/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/3 Emp12/4 Emp12/4 Emp12/4 Emp12/4 Emp12/2/2/2/2/4 Emp12/2/2/2/2/2/2/2/2/2/21/2/4/3 EM18 29/1/2/4/4/4 EMP 19/1/2/2/4/4/3 EM18 29/1/2/2/4/4/4/4 EMP 25/1/2/4/4 EMP 25/1/2/4 EM19/2/4/2/4/3/4/3/4/3/3/3/3/2/2/2/4/3/2/2/4 EMP 25/2/2/2/4 EMP 25/2/2/2/2/2/4 EMP 25/2/2/2/2/4 EMP 25/2/2/2/2/2/2/2/4 EMP 25/3/2/2/2/2/2/2/3/2/2/2/2/3/2/2/2/3/2/2/3/2/2/2/3/3/2/2/2/2/2/3/2/2问题结束它本身这里很难理解,在问题本身中添加一些样本数据。基本上,我想找出任何给定子树下的所有叶节点。1/1/1/1/1/1/1/3 EM3 4 4/1/1/1/1/1/1/1/1/1/1/3 3 EM4 4 5/1/1/2/2 EM4 4 5/2/2 EM5 5 5 5/2/2/2/2/2/2/2/2/2/2/2/2/2/2/4 EM4 4 4 4 EM4 4 4 4 EM4 EM4 4 4 5 5 5 5/1/1/12/1/1/1/1/1/1/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/4 4 4 4 4 4/4 4 4 4 4/4/4/4 4 4 4 4 4/4 4 4/4 4 4 4 4 4 4/4 EM11 11 11 11 11/4 4/4 4 4 4 4 4 4 4 4 4 4 4 2007年3月2日至4月17日28/1/2/4/3 Emp18 29/1/2/4/1/4 Emp19 30/1/2/4 EMP215/1/3/2 Emp21 16/1/3/1/3/3 Emp22 18/1/3/1/4 Emp23 19/1/3/1/2/4 Emp24 17/1/3/2/3 Emp25 20/1/3/2/2/4 Emp26 21/1/3/2/2/2/4 Emp27 22/3/3/2/3/2/4 Emp28/3/2/4 Emp28/3/2/2/3/2/4 Emp28/3/4/2/4/3/3/4将问题粘贴在租赁结束处。。这里很难理解,在问题本身中添加一些样本数据。基本上,我想找出任何给定子树下的所有叶节点。谢谢