2015-02-24 59 views
0

我想通過存儲過程來獲得員工的最高老闆:如何在程序中進行foreach並在特定條件下返回值?

現在我有這帶來的直接上司是這樣一個過程:

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最高的老闆。

我想用foreach loop in informix做到這一點,並返回0前的最後一個如何做到這一點?

回答

0

改變存儲過程hm_get_my_direct_boss於下述:

聲明一個變量來存儲當前的老闆的ID。說Current_Boss_ID

如果直接老闆不是 0,調用hm_get_my_direct_boss(Current_Boss_ID)

如果直接老闆IS 0,RETURN Current_Boss_ID。

RETURN讓您將控制流程返回到第一個調用過程。

但是,處理這些場景的更高效和更清潔的方法是使用recursive CTE

相關問題