質問: [値] ``` 任意条件が入力されていなければ、必須条件のみで検索。 任意条件が入力されていれば、それに合わせて検索。 CASE文を使用するのかと考えたのですが、うまくいきませんでした。 どのようなSQL文を書けば実現できるのか教えていただけないでしょうか。 【環境】 ・Windows 7 ・SQL Server 2012 ・ASP.NET ・C#
回答: 「任意条件が入力されていない」という値をどのように表現するのかによりますが、仮に `null` で表現するとして。 で、各条件が同名のパラメーターに入っている、と仮定して。 こんな感じでどうでしょう。 ``` select * from [テーブル名] as TBL where TBL.メーカー = @メーカー and TBL.車種 = @車種 and (@色 is null or TBL.色 = @色) and (@価格 is null or TBL.価格 = @価格) and (@店舗名 is null or TBL.店舗 = @店舗) ``` 「任意条件が入力されていない or 任意条件と一致するもの」という書き方です。