пытается добавить условное И.
Я не хочу проверять соответствие поля данных, если в @Data ничего нет
select distinct mo.ModelId,
mo.ModelName
from Model mo
join MaModelar mmy on mmy.ModelID = mo. ModelID
join [Application] a on a.MaModelar ID = mmy.MaModelar ID
join Appltitle t on t.ApplTID = a.ApplicationID
where mmy.MakeId = 331
CASE
WHEN LEN(t.Name) > 0
THEN
and (t.Name = 'A.T.V.')
END
order by mo.ModelName asc
Позвольте мне подвести итог другими словами:
Я не хочу запрашивать (Modelid AND @Note), если @Note недействительно. Неверный означает, что @Note является пустым или нулевым. Поэтому я пытаюсь добавить некий условный оператор, который сначала проверяет @Note и, если он действителен, включает его в предложение where как AND. Поэтому, если @Note допустимо (len> 1), тогда этот запрос должен включать mmy.MakeId = 331 AND t.Data = 'A.T.V.'.
Если @Note недопустимо, тогда в запросе будет просто WHERE mmy.MakeId = 331 и пропущено AND, и он не будет пытаться проверить @Note вместе с mmy.MakeId.
Я тоже это попробовал:
select distinct mo.ModelId,
mo.ModelName
from Model mo
join MaModelar mmy on mmy.ModelID = mo. ModelID
join [Application] a on a.MaModelar ID = mmy.MaModelar ID
join Appltitle t on t.ApplTID = a.ApplicationID
WHEN LEN(LTRIM(RTRIM(@Name))) < 1
THEN where mmy.ModelId = @ModelId
ELSE
where mmy.ModelId = @ModelId
AND substring(n.Name, CHARINDEX(']', n.Name) + 2, LEN(n.Name)) = @Name