我有一个包含以下字段的表
这就像推荐计划一样。一个人可以参考他下面的3个人,即3个是指三个人即4 5 8同样4指9 10和11同样8指的是12,13就是这样..
我想要一个查询来获取Supervisor 3下的所有EmpId
答案 0 :(得分:3)
您是否希望我们为您编写解决方案,或者解释一下如何构建递归查询?
IBM DB2红皮书有一整章SQL递归。
要点是通常涉及以下步骤:
你定义了一个“种子”。 SELECT SUPID,EMPID,1 AS LVL from EMP SUPERE = 3;
您为此分配了一个名称。使用SRC AS<您的种子>
您可以使用指定的名称定义从种子开始转到“下一级”的方法。 SELECT SRC.SUPID,F.EMPID,SRC.LVL + 1 FROM SRC,EMP WHERE SRC.EMPID = EMP.SUPID
您将两者结合在一起(在WITH子句内)与SRC AS<您的种子在这里> UNION ALL<另一个SELECT在这里>
(可选)您可以定义要选择的列。 SELECT EMPID,LVL来自SRC。