Я хочу добиться от sql следующего: предположим, у меня есть @accountId int
в качестве параметра в хранимой процедуре, теперь, если я передаю параметр как 99999
, то во всех операторах выбора он выбирает WHERE AccountId <> 124
, в противном случае, если я передаю любой другой параметр, он выбирает WHERE AccountId=@accountId
. Этот оператор является частью очень длинной хранимой процедуры, поэтому я не включил всю процедуру.
WHERE (IF(AccountId = 99999)
BEGIN
AccountId <> 124
END
ELSE
BEGIN
AccountId = @accountId
END)
ИЛИ Могу ли я добиться аналогичного результата из заявления CASE. Что-то типа,
WHERE (AccountId(CASE(AccountId) WHEN 99999 THEN <>124 ELSE =@accountId))
Я отредактировал свой вопрос, прошу прощения за то, что задал его несвязанным образом. Пожалуйста, дайте мне знать, если это имеет смысл для вас или вам нужна дополнительная информация.