我有我的存儲過程此IF
聲明:有誰知道如何寫這個SQL如果語句更好?
if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam <> 2 AND @SomeOtherParam <> 4 AND @SomeOtherParam <> 5))
我的問題是,我可以檢查@SomeOtherParam
一個炮打響,而不必檢查3個獨立倍?
我有我的存儲過程此IF
聲明:有誰知道如何寫這個SQL如果語句更好?
if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam <> 2 AND @SomeOtherParam <> 4 AND @SomeOtherParam <> 5))
我的問題是,我可以檢查@SomeOtherParam
一個炮打響,而不必檢查3個獨立倍?
這應該做的伎倆:
if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam NOT IN (2,4,5)))
IN
取值的列表,如果你的價值在列表中找到返回true。添加NOT
意味着如果您的值爲而不是,則返回true。
或許真的與CASE語句:
if case @someparam when 'C' then 1 when 'I' then @someotherparam NOT IN (2,4,5) else 0 end
嘗試
if (@SomeOtherParam NOT IN (2, 4, 5))
還有EXISTS關鍵詞在SQL,您可以使用
if not EXISTS (select * from list where my_column= @someotherparam)