Я думаю, что выигрыш в производительности PATINDEX
против LIKE
в лучшем случае неоднозначный , особенно в вашем случае, учитывая, что нормализация значений с разделителями для отдельных строк в индексированном столбце даст большую производительность буст, чем все остальное.
Если вы не можете изменить дизайн и хотите использовать PATINDEX
, тогда я предварительно вычислю шаблон;
declare @emaildomain varchar(128) = 'anemail@gmail.com'
set @emaildomain = '%;' + stuff(@emaildomain, 1, charindex('@', @emaildomain), '') + ';%'
Затем используйте это в предложении where;
where patindex(@emaildomain, ';' + [Domain] + ';') > 0
(я добавил ;
разделители, поэтому aaa@bbb.com
не будет соответствовать aaabbb.com;
)