Возможно, не самый лучший титул, но в любом случае ..
У меня есть хранимая процедура, которая до сих пор имела 1 необязательный параметр, который я легко решал с помощью 1 оператора if. Теперь он имеет 2, что доводит до 4 операторов if. Я хотел бы знать, если есть лучший способ написать запрос, чем следующее. Особенно, если / когда число переменных увеличивается до 4 или 5.
Я ищу более простой способ добавить эту новую переменную ignoreTheseIds без необходимости добавлять еще 2 оператора if / else.
ALTER PROCEDURE [dbo].[SomeQuery]
@StartingDate varchar(10) = '1/1/1900',
@EndingDate varchar(10) = NOW,
@LimitToTheseIds varchar(MAX) = ''
@IgnoreTheseIds varchar(MAX) = ''
AS
BEGIN
SET NOCOUNT ON;
IF @LimitTo = ''
BEGIN
SELECT id1, col2
FROM Table1 as T
WHERE SomeDateTime <= @EndDate
AND SomeDateTime >= @StartDate
END
ELSE
BEGIN
SELECT id1, col2
FROM Table1 as T
WHERE SomeDateTime <= @EndDate
AND SomeDateTime >= @StartDate
AND @LimitToTheseIds LIKE '%|' + CAST(id1 as varchar) + '|%'
END
END
Надеюсь, я ничего не испортил при изменении имен переменных ...