有谁知道如何更好地编写这个SQL If语句?

EJC*_*EJC 1 sql syntax stored-procedures code-cleanup

IF在我的存储过程中有这样的陈述:

if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam <> 2 AND @SomeOtherParam <> 4 AND @SomeOtherParam <> 5))
Run Code Online (Sandbox Code Playgroud)

我的问题是我可以一次检查@SomeOtherParam,而不是必须分别检查3次吗?

Mic*_*sen 6

这应该做的伎俩:

if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam NOT IN (2,4,5))) 
Run Code Online (Sandbox Code Playgroud)

IN获取值列表,如果在列表中找到您的值,则返回true.添加NOT意味着,如果你的价值,它将返回true 没有找到.