プロが教えるわが家の防犯対策術!

@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

ご教授の程、よろしくお願い致します

A 回答 (1件)

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)
    • good
    • 6
この回答へのお礼

todo36様

ありがとうございました!
バッチリです。
これから使わせて頂きます。

お礼日時:2013/05/30 13:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A