如何在程序中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
这意味着 892
是 56
的最高老板。
我想用 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。
我想通过存储过程获取员工的最高老板:
现在我有一个程序可以像这样把直属上司带过来:
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
这意味着 892
是 56
的最高老板。
我想用 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。