Я пытаюсь реализовать необязательные параметры в хранимой процедуре, но у меня возникла проблема. Вот упрощенный запрос для иллюстрации проблемы:
SET ANSI_NULLS OFF
DECLARE @MiddleName VARCHAR(20);
SET @MiddleName = NULL;
SELECT * FROM [Customer]
WHERE [LastName] = 'Torres'
AND [MiddleName] = COALESCE(@MiddleName, [MiddleName])
Когда я запускаю этот запрос, мне нужно получить обратно одну строку, потому что у одного Torres есть NULL в столбце [MiddleName]. Но запрос возвращает ноль строк. Использование IFNULL () дает тот же результат. Из исследования COALESCE у меня сложилось впечатление, что NULL будет возвращен, если все выражения будут NULL. Поскольку я не эксперт по SQL, я предполагаю, что мне чего-то не хватает, но что это .....
Заранее спасибо за любую помощь.