У меня есть процедура с (немного более сложной) версией ниже:
CREATE PROC sp_Find_ID (
@Match1 varchar(10),
@Match2 varchar(10)
) AS
DECLARE @ID int
SELECT @ID = ID
FROM Table1
WHERE Match1 = @Match1
AND Coalesce(Match2,@Match2,'') = Coalesce(@Match2,Match2,'')
SELECT @ID ID
По сути, Match1 является обязательным соответствием, но Match2 является необязательным как для ввода в процедуру, так и длястол ищется.Второе совпадение завершается успешно, если входные и / или значения таблицы Match2 равны нулю, или когда они оба имеют одинаковое (не нулевое) значение.
Мой вопрос: существует ли более эффективное (или даже более)читаемый) способ сделать это?
Я использовал этот метод несколько раз, и каждый раз я чувствую себя немного запачканным (субъективная грязь, по общему признанию).