У меня есть большой набор данных, который возвращается из представления в SQL Server 2012. Мне нужно отфильтровать данные на основе 6 разных критериев. Я установил параметры в отчете и хочу использовать параметры в запросе для уменьшения размера.
Так что у меня следующая ситуация:case case with wildcard in where where
select * from vw_ABC where p1 in @p1 and p2 in @p2 ...
Хитрость в том, как справиться с ситуацией, когда пользователь не хочет, чтобы фильтровать по одному из критериев. Я пытаюсь избежать динамического sql, но если это единственный способ, пусть и так.
Когда вызывается отчет, пользователь будет иметь все 6 параметров. Значения по умолчанию будут «ВСЕ». Они могут создавать отчет с одним или всеми параметрами. В большинстве случаев это будет 2 или 3 (имя города zip orderid такие вещи)
Любая помощь будет принята с благодарностью.
Вы действительно говорите бой 'в'? Или это скорее «где p1 = @ p1 ...»? –
где (@ p1 = 'ALL' или p1 = @ p1) и ... Может возникнуть проблемы с производительностью – Serg
Какие СУБД вы используете? Пожалуйста, отметьте его. –