想定されるケース
一覧画面で検索項目が複数あるが、値が入力された項目についてのみ検索条件で使用されるようにしたい。
例
以下の3項目で検索できる画面とする
・商品名
・値段
・ブランド名
そのうち、画面でパラメータが選択された場合のみ検索されるようにするには、
以下のようにORとnullを組み合わせで、検索を実現する。
検索.sql
select ProductName, /* 商品名 */
Price, /* 値段 */
BrandName /* ブランド名 */
from TABLE
where ([:商品名] is null OR ([:商品名] is not null AND ProductName = [:商品名])
and ([:値段] is null OR ([:値段] is not null AND Price = [:値段])
and ([:ブランド名] is null OR ([:ブランド名] is not null AND BrandName = [:ブランド名])