У меня есть таблица «Маршрут» с столбцами Id, Name и Active. Если Id = 0, я хочу выбрать все идентификаторы, где Active = true.Оператор case в выражении WHERE в SQL
Если Id> 0, я хочу выбрать данные для определенного Id, где Active = true.
Я пробовал со следующим запросом. Но не работает. (здесь я прошел 2 для значения Id.) Может кто-нибудь меня поддержать?
DECLARE @ID INT
SET @ID = 2
SELECT DISTINCT Id ,Name
FROM Route
WHERE
CASE WHEN @ID > 0
THEN Id = @ID AND Active= 1
ELSE
Active=1
END
Образец данных прилагается.
Я попробовал. Но не удалось – Tom
Является '' '' '' строковым полем ('' True'') или целочисленным полем ('1')? –
Active - это поле Boolian. – Tom