1

渡されたパラメータの値に基づいて、ストアドプロシージャのwhere句を変更できるようにしたいと思います。

例えば

これは私がそれがうまくいくはずだと思う方法ですが、私はそれを完全に正しく理解することはできません

Declare @param as int

set @param = 1

Select Productname
from product
where
 case @param = 1 then productname = 1
 else productname <> 1
 end

私は動的SQLなどを見てきましたか?

前もって感謝します

4

1 に答える 1

4

この WHERE 句を試してください。

WHERE (@param = 1 AND productname = 1)
OR    (@param <> 1 AND productname <> 1)

ANDよりも優先順位が高いため、ここでは括弧は厳密には必要ありませんORが、わかりやすくするために括弧を追加しました。

于 2012-07-10T15:39:45.540 に答える