2011-11-08 16 views
1

where節のselect文で使用する値を渡すストアドプロシージャがあります。Sql where節

私が渡している値がNULLの場合は、それが使用されているwhere句のその部分に含まれないようにします。次の例では、variable2はストアドプロシージャに渡してsql文で使用する変数ですが、@ variable2がNULLの場合はwhere節にvariable2 = @ val1を使用しません。例:

select Field1, Field2 from tbl1 
where variable2= @val1 
and ID = 'test' 

答えて

0

試してみてください。

where (@val1 is null or variable2 = @val1) 
and ID = 'test' 
0
select Field1, Field2 from tbl1 
where (variable2= @val1 or @val1 is null) 
and ID = 'test' 
0

方法について:

select Field1, Field2 from tbl1 
where (@val1 IS NULL or variable2 = @val1) 
and ID = 'test' 
0

あなたWHERE句は、左側の列を持っている必要があり、それはおそらくケースかもしれませんあなたはそれをvariable2と呼んでいます。特定のパラメータを指定すると、これはうまくいくでしょう:

select Field1, Field2 
from tbl1 
where yourColumn = 
case 
    when @param1 is null 
    then @param2 
end 

私は一般的なフィールド名とパラメータ名を使用していますが、そのアイデアを得るべきです。