У меня есть ситуация, когда, если входная переменная равна определенной строке, я хочу оценить условие, а если нет, то меня это не волнует.
Я пытался сделать это как с IF, так и с CASE, но получил неверные синтаксические ошибки. Может быть, это невозможно, или, возможно, у меня не все скобки в нужных местах?
Declare @state nvarchar(255) = 'KY'
,@group nvarchar(255) = 'COM'
SELECT * from business_auth
where (case when @group = 'COM'
then (@state = AddressState or AddressState is null)
else 1=1
end)
Я хочу, чтобы он посмотрел на столбец состояния, если группа COM, но для любой другой группы. Я не забочусь о состоянии. У меня здесь также есть длинный список других оценок AND, поэтому я бы предпочел не переписывать все целиком или ставить IF перед запросом, и иметь в процедуре две версии запроса, одно состояние оценкии один не делает этого. Кажется, что было бы более красноречивое решение, но если нет, я пойду с этим.