Оба ответа здесь сработают - на самом деле я видел лучшую производительность, используя CHARINDEX в предложении WHERE для этого типа вещей, но он близок.По соображениям производительности я бы подошел к этому, используя вычисляемый столбец и индексируя его.Таким образом, вы можете выполнить расчет только один раз.Используя примерные данные @Shnugo (для тестирования преобразованные в временную таблицу):
-- Table DDL and sample data
CREATE TABLE #tbl
(
UserID INT,
email VARCHAR(100),
County VARCHAR(100),
CountyInEmail AS CAST(SIGN(CHARINDEX(County,email)) AS BIT) PERSISTED
);
INSERT INTO #tbl VALUES
(15854,'test@test.com ','POLK')
,(15018,'test@adaircounty.org ','ADAIR')
,(15020,'test@adaircounty.org ','ADAIR')
,(15022,'test@adaircounty.org ','ADAIR')
,(15024,'adamsrecorder@adamscountyia.com ','ADAMS')
,(15026,'test@frontier.com ','ADAMS')
,(15028,'test@co.allamakee.us ','ALLAMAKEE')
,(15030,'lwelch@co.allamakee.ia.us ','ALLAMAKEE')
,(15032,'test@co.allamakee.us ','ALLAMAKEE')
,(15034,'test@appanoosecounty.net ','APPANOOSE');
-- Index on the "CountyInEmail" field
CREATE NONCLUSTERED INDEX nc_County ON #tbl(CountyInEmail)
INCLUDE (UserID, email, County)
;
-- Note the execution plan here (nonclustered index seek = good)
SELECT t.UserID, t.email, t.County, t.CountyInEmail
FROM #tbl AS t
WHERE t.CountyInEmail = 1;