如何在过程中foreach并在特定条件下返回值



我想通过存储过程为员工找到最高的老板:

现在我有一个程序,可以让直接老板这样:

hm_get_my_direct_boss(emp_num).

如果我有emp_num = 56

如果我调用过程CCD_ 2。它将返回CCD_ 3(直接老板)。

那么如果我再次调用它hm_get_my_direct_boss(678),它将返回892

如果我第三次调用它hm_get_my_direct_boss(892),它将返回0

这意味着CCD_ 8是CCD_。

我想用foreach loop in informix做这件事,并返回0之前的最后一个,怎么做?

将存储过程hm_get_my_direct_boss更改为以下内容:

声明一个变量来存储当前老板的ID。比如current_boss_ID

如果直接上级不是0,则调用hm_get_my_direct_boss(Current_Boss_ID)

如果直接bossIS为0,则RETURN为Current_boss_ID。

RETURN允许您将控制流返回到第一个调用进程。

但是,处理这类场景的更高效、更干净的方法是使用递归CTE。

最新更新