2012-04-03 43 views
0

我正在一個網站上工作,我應該從用戶那裏獲取數據,然後根據他的職業信息向他展示他應該完成的任務。如何在sproc中添加詳細的if條件?

我在數據庫「管理器」中有兩個主表和「工人」。

當用戶輸入他的數據時,他的返回ID應該顯示他的類型是什麼。 然後我把id和日期,並得到一天的任務。

我在想的是檢查這個ID是否在Manager表&找到,如果發現它會檢索相關任務,否則它將檢索與Worker相關的任務。

但是我從來沒有在SPROC中寫出條件,我發現的所有東西都是如果x = <> ... etc(這不是我想要的)。

那麼,如果你告訴我它是如何寫入的,或者是否有任何有用的教程或文章提到類似的情況,是否可能?

非常感謝。

回答

1

嘗試這樣:

IF EXISTS(SELECT ManagerID FROM Managers WHERE ManagerID = @ID) BEGIN 

    --select from manager tasks 

END 
ELSE BEGIN 

    --select worker tasks 

END 

我想這就是你問什麼,所以現在我要添加自己的兩分錢。我不知道你是否能夠編輯模式,但將管理人員和工作人員放在一張表中並添加一個類型列是否更有意義?如果你這樣做,這一切都不是必要的。

+0

這正是我所需要的。謝謝喔。 – OnlyHope 2012-04-03 18:31:58

+0

很高興爲您提供幫助。如果你滿意,不要忘了標記答案。 – 2012-04-03 18:33:28

+0

我很抱歉,我的帳戶還不能投票,但您完全配得上。 – OnlyHope 2012-04-03 18:33:37

1

你的問題是你的方式要問什麼有點混亂..

我想你想知道你的用戶(USER_ID)是否存在於你的經理表或在員表..

,你可以很容易地通過下面的查詢找出..

select 'Manager' as u_type from manager 
where manager_id = <user_id> 
union all 
select 'Worker' as u_type from worker 
where worker_id = <user_id> 

所以這個u_type值,你可以很容易地識別出您的用戶類型信息的幫助..

之後,當你提到它是非常簡單的白天明智取數據...

這個查詢,你可以在存儲過程中使用的

select u_type 
into l_u_type 
from 
(
    select 'Manager' as u_type from manager 
    where manager_id = <user_id> 
    union all 
    select 'Worker' as u_type from worker 
    where worker_id = <user_id> 
) 

其中l_u_type是局部變量,將是或者varchar2string數據類型

+0

非常感謝Pratik :) 非常有幫助。 – OnlyHope 2012-04-03 18:41:00

+0

:)你是最受歡迎的... – 2012-04-03 19:33:03