У меня есть хранимая процедура, которая возвращает данные.
Мне нужно изменить предложение where на основе переданных параметров.
Например, параметры:
@Region NVARHCAR(15)
@CountryCode NVARCHAR(2)
@ProductA BIT
@ProductB BIT
@ProductC BIT
Если передается @Region, то где следует выбирать по региону, если @CountryCode передается, то где следует выбирать по коду страны.
Для продуктов, если какой-либо из них установлен наЗначение true, где следует выбрать данные для этого проекта.
Таким образом, оператор может выглядеть следующим образом, если передано @Region и для @ProductA и @ProductC задано значение true:
SELECT *
FROM table
WHERE Region = @Region AND
(Product = 'ProductA' OR Product = 'ProductC')
В качестве альтернативы условный продукт может быть оператором IN.
Если в него передан @CountryCode, он будет выглядеть следующим образом:
SELECT *
FROM table
WHERE CountryCode = @CountryCode AND
(Product = 'ProductA' OR Product = 'ProductC')
Возможно даже, что @CountryCode и @Region могут бытьпередано.
Есть ли способ сделать это с T-SQL, а не с динамическим SQL, сгенерированным из приложения?
Спасибо