如何在程序中foreach和return特定条件下的值?

How to foreach in procedure and return the value under specific condition?

我想通过存储过程获取员工的最高老板:

现在我有一个程序可以像这样把直属上司带过来:

hm_get_my_direct_boss(emp_num).

如果我有 emp_num = 56

如果我调用过程 hm_get_my_direct_boss(56)。 它将 return 678 (直接老板)。

然后如果我再次调用它 hm_get_my_direct_boss(678) 它会 return 892

如果我第三次调用它 hm_get_my_direct_boss(892) 它会 return 0

这意味着 89256 的最高老板。

我想用 foreach loop in informix 和 return 0 之前的最后一个来做这个怎么办?

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

声明一个变量来存储当前老板的ID。说 Current_Boss_ID

如果直属上司不是 0,调用hm_get_my_direct_boss(Current_Boss_ID)

如果直属上司0,RETURN则Current_Boss_ID.

RETURN 让您 return 控制流到第一个调用过程。

但处理此类情况的更有效、更简洁的方法是使用 recursive CTE