は、ストアドプロシージャの一部である: - @ID = 0
は、それが条件を無視した場合、現在ケースを使用する方法where where conditon tsql?
@ID int
@Col1 int
@Col2 int
Select *
from Table_01 t1
JOIN table_02 t2 on t1.col = t2.col
where
1 = case when @Col1 = 0 then 1 else (case when t2.Col1 = @Col1 then 1 else 0 end) end
AND 1 = case when @Col2 = 0 then 1 else (case when t2.Col2 = @Col2 then 1 else 0 end) end
AND 1 = case when @ID = 0 then 1 else (case when t2.ID = @ID then 1 else 0 end) end
- @IDは、それが基準の満足度に基づいて結果を返す値を持つ場合
別の条件を追加する必要があります。 -
if @ID = -1
(一致がないだって)その後、任意の結果を返すべきではありません それは@ID = 0
のように行動しなければならない(expresssionを追加するために無視する)
は私がクリアするのですか? :(この最後の条件は切り札他の二つの、そしてあなたが順序変更する必要がなければならない場合
この最後の条件は他の2つよりも優先すべきですか? – Thomas
これは、私が覚えている限り、SQL Server 2005で 'option(recompile)'を実行しても完全にunsargableです。 –