Вы можете попробовать что-то подобное в хранимой процедуре или параметризованном операторе SQL. Таким образом, вы можете передать все поля, даже если только некоторые из них имеют значения.
@param1 varchar(25),
@param2 int,
@param3 varchar(10),
@param4 char(1)
SELECT column1, column2, column3, column4
FROM TABLE
WHERE (column1 = @param1 OR @param1 IS NULL)
AND (column2 = @param2 OR @param2 IS NULL)
AND (column3 = @param3 OR @param3 IS NULL)
AND (column4 = @param4 OR @param4 IS NULL)