2013-11-21 61 views
0

我正在擴展一個存儲過程,我必須做一些代碼來檢查一行是否包含 下面的一些然後SP將停止在這是第一個規定。 SP包含6個步驟,這是第一個。它被用作控制器來查看 行是否包含一些內容(如果有的話)。如果它沒有,那麼它應該繼續下一步。如果它 確實同意以下一些內容,那麼它應該留下通知,而不是繼續下一步。如果在SQL服務器中的語句

if @action = (select action from dbo.table where action like 'something-%') 

if @action = (select action from dbo.table where action like 'something-else%') 


if @action = (select action from dbo.table where action like 'something-new%') 


if @action = (select action from dbo.table where action like 'something-old%') 


if @action = (select action from dbo.table where action like 'something-cool%') 

我有第一部分需要幫助第二部分。

乾杯

+0

是下一步不是RETURN語句? –

+0

你應該使用'if ... else if'。使用'CASE'可能會更好 – Raj

回答

2

我只是用RETURN

if @action = (select action from dbo.table where action like 'something-%') begin 
    RETURN; 
end 
0

您可以使用case語句,而不是多個if語句。
希望這個例子可以幫助

Simple CASE expression: 
    CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
    END 
    Searched CASE expression: 
    CASE 
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
    END 
+0

鑑於結果不一定是相互排斥的,這是否意味着可能無需執行所有查詢? –