Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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 递归查询_Sql_Recursive Query - Fatal编程技术网

Sql 递归查询

Sql 递归查询,sql,recursive-query,Sql,Recursive Query,我有一个包含以下字段的表 监督员 埃皮德 这就像是一个推荐计划。一个人可以指他下面的三个人,也就是说,3指的是三个人,即458,同样地,4指的是910,11,同样地,8指的是12,13,是这样的 我需要一个查询来获取Supervisor 3下的所有EmpId,您希望我们为您编写解决方案,还是解释一下递归查询是如何建立的 关于它们是如何构建的示例,请参见 IBMDB2红皮书有一整章是关于SQL递归的 要点是通常涉及以下步骤: 你定义了“种子”。从EMP中选择SUPID,EMPID,1作为LV

我有一个包含以下字段的表

  • 监督员
  • 埃皮德
这就像是一个推荐计划。一个人可以指他下面的三个人,也就是说,3指的是三个人,即458,同样地,4指的是910,11,同样地,8指的是12,13,是这样的


我需要一个查询来获取Supervisor 3下的所有EmpId,您希望我们为您编写解决方案,还是解释一下递归查询是如何建立的

关于它们是如何构建的示例,请参见

IBMDB2红皮书有一整章是关于SQL递归的

要点是通常涉及以下步骤:

  • 你定义了“种子”。从EMP中选择SUPID,EMPID,1作为LVL,其中SUPID=3

  • 您可以为其指定一个名称。以SRC为例

  • 您可以使用指定的名称定义从种子开始进入“下一级”的方式。从SRC,EMP中选择SRC.SUPID,F.EMPID,SRC.LVL+1,其中SRC.EMPID=EMP.SUPID

  • 将这两者结合在一起(在WITH子句中),SRC作为UNION ALL

  • (可选)定义要选择的列。从SRC中选择EMPID、LVL


也就是说,你想要4,5,8,9,10,11,12,13,对吗?也许这可以帮助你:可能是