以下を検討してください
Declare @t table(Val int, name varchar(100))
Insert into @t select 1,'name1'
union all select 1,'name2'
union all select 2,'name3'
union all select 3,'name4'
Val 1 または 2 に関連するレコードを取得したい場合は、IN 句を選択します。ただし、値を選択する必要がある条件があります。今後は以下のようにCASEアプローチを進めていきます
declare @type int = 1
select *
from @t
where val = case when @type =1 then 1 end or
val = case when @type =1 then 2
end
select * from @t where val in (1,2)として正常に動作します(実行時に値を決定する必要があり、動的クエリを使用していないため、これを使用することはできません)。IN 句をシミュレートする他の方法はありますか?
これは単なる知識のためです。
ありがとう