我的存储过程中有IF
语句:
if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam <> 2 AND @SomeOtherParam <> 4 AND @SomeOtherParam <> 5))
我的问题是我可以一次性检查@SomeOtherParam
,而不必分别检查3次吗?
答案 0 :(得分:6)
这应该可以解决问题:
if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam NOT IN (2,4,5)))
IN
获取值列表,如果在列表中找到您的值,则返回true。添加NOT
表示如果您的值不,它将返回true。
答案 1 :(得分:1)
也许有CASE陈述:
if case @someparam when 'C' then 1 when 'I' then @someotherparam NOT IN (2,4,5) else 0 end
答案 2 :(得分:1)
尝试
if (@SomeOtherParam NOT IN (2, 4, 5))
答案 3 :(得分:0)
SQL中还有EXISTS个关键字,您可以使用
if not EXISTS (select * from list where my_column= @someotherparam )