Я создаю хранимую процедуру для выполнения поиска через таблицу. У меня много разных полей поиска, все из которых являются необязательными. Есть ли способ создать хранимую процедуру, которая будет обрабатывать это? Скажем, у меня есть таблица с четырьмя полями: ID, FirstName, LastName и Title. Я мог бы сделать что-то вроде этого:
CREATE PROCEDURE spDoSearch
@FirstName varchar(25) = null,
@LastName varchar(25) = null,
@Title varchar(25) = null
AS
BEGIN
SELECT ID, FirstName, LastName, Title
FROM tblUsers
WHERE
FirstName = ISNULL(@FirstName, FirstName) AND
LastName = ISNULL(@LastName, LastName) AND
Title = ISNULL(@Title, Title)
END
Такие работы. Однако он игнорирует записи, где FirstName, LastName или Title имеют значение NULL. Если Title не указан в параметрах поиска, я хочу включить записи, где Title NULL - то же самое для FirstName и LastName. Я знаю, что я мог бы сделать это с помощью динамического SQL, но я бы хотел этого избежать.