我的存储过程中有这个IF
语句:
if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam <> 2 AND @SomeOtherParam <> 4 AND @SomeOtherParam <> 5))
我的问题是我可以一次检查@SomeOtherParam
,而不必分别检查 3 次吗?
我的存储过程中有这个IF
语句:
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))
SQL 中还有 EXISTS关键字,您可以使用它
if not EXISTS (select * from list where my_column= @someotherparam )