У меня есть Stored Proc, который выполняет поиск по записям.
Проблема в том, что некоторые критерии поиска, исходящие из интерфейса, могут быть пустой строкой.Таким образом, когда критерии не указаны, инструкция LIKE становится избыточной.
Как эффективно выполнить поиск или Sql Server?Или это оптимизирует запрос LIKE ('%%'), поскольку это означает, что сравнивать нечего?
Сохраненный процесс выглядит следующим образом:
ALTER PROC [FRA].[MCC_SEARCH]
@MCC_Code varchar(4),
@MCC_Desc nvarchar(50),
@Detail nvarchar(50)
AS
BEGIN
SELECT
MCC_Code,
MCC_Desc,
CreateDate,
CreatingUser
FROM
FRA.MCC (NOLOCK)
WHERE
MCC_Code LIKE ('%' + @MCC_Code + '%')
AND MCC_Desc LIKE ('%' + @MCC_Desc + '%')
AND Detail LIKE ('%' + @Detail + '%')
ORDER BY MCC_Code
END