@jouken int
@sql varchar(MAX)
@select varchar(MAX)
@where varchar(MAX)
set @select = 'select * from table1'
set @where = '
where
case
when @jouken = 0 then 'field1 = 1'
when @jouken = 1 then 'field1 = 1 or field2 = 1'
when @jouken = 2 then 'field1 = 1 or field2 = 1 or field3 = 1'
end
'
set @sql=@select+@where
exec(@sql)
上記のような文字列の組み合わせでの作成でやりたいことはできたのですが、
こちらを直接SQLの中でやりたいのです。
以下の文は機能しません。
select * from table1
where
case
when @jouken = 0 then field1 = 1
when @jouken = 1 then field1 = 1 or field2 = 1
when @jouken = 2 then field1 = 1 or field2 = 1 or field3 = 1
end
ご教授の程、よろしくお願い致します
andとorで記述できます。
select * from table1
where
@jouken = 0 and field1 = 1
or @jouken = 1 and (field1 = 1 or field2 = 1)
or @jouken = 2 and (field1 = 1 or field2 = 1 or field3 = 1)
お礼
todo36様 ありがとうございました! バッチリです。 これから使わせて頂きます。