1

IFストアドプロシージャに次のステートメントがあります。

if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam <> 2 AND @SomeOtherParam <> 4 AND @SomeOtherParam <> 5))

私の質問は@SomeOtherParam、3回別々にチェックする代わりに、1回のショットでチェックインできますか?

4

4 に答える 4

6

これでうまくいくはずです:

if ((@someParam = 'C') OR (@someParam = 'I' AND @SomeOtherParam NOT IN (2,4,5))) 

IN値のリストを取得し、リストに値が見つかった場合はtrueを返します。追加NOTとは、値が見つからない場合にtrueを返すことを意味します

于 2010-09-24T14:48:52.960 に答える
1

多分CASEステートメントで何か:

if case @someparam when 'C' then 1 when 'I' then @someotherparam NOT IN (2,4,5) else 0 end
于 2010-09-24T14:50:32.353 に答える
1

試す

if (@SomeOtherParam  NOT IN (2, 4, 5))
于 2010-09-24T14:52:22.717 に答える
0

SQLには、使用できるEXISTSキーワードもあり ます。

if not EXISTS (select * from list where my_column= @someotherparam )
于 2010-09-24T14:57:06.620 に答える