【问题标题】:How to foreach in procedure and return the value under specific condition?如何在程序中进行foreach并在特定条件下返回值?
【发布时间】:2015-04-25 23:40:56
【问题描述】:

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

现在我有一个程序可以像这样带上直接老板:

hm_get_my_direct_boss(emp_num).

如果我有emp_num = 56

如果我调用程序hm_get_my_direct_boss(56)。 它将返回678(直接老板)。

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

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

这意味着89256 的最高boss。

我想用foreach loop in informix 执行此操作并返回 0 之前的最后一个如何执行此操作?

【问题讨论】:

    标签: sql loops stored-procedures recursion informix


    【解决方案1】:

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

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

    如果直接上司IS NOT 0,则调用hm_get_my_direct_boss(Current_Boss_ID)

    如果直接上司IS为0,RETURNCurrent_Boss_ID。

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

    但处理这类场景的更高效、更简洁的方法是使用recursive CTE

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 2018-07-18
      • 2021-03-09
      • 2019-09-29
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      相关资源
      最近更新 更多