A reach I think you mean LEN([dmn].[DOMAIN]) It should not matter but maybe use [DOMAIN] [nvarchar](75) NOT NULL and make it a clustered index UPDATE dt SET dt.[accept] = case when [dmn].[DOMAIN] is not null THEN 'NO' ELSE 'Yes' END FROM [dbo].[Data] dt LEFT JOIN dbo].[Domains] dmn on [dmn].[DOMAIN] = SUBSTRING([dt].[email], CHARINDEX('@', [dt].[email]) + 1, LEN([dmn].[DOMAIN])) WHERE dt.[accept] is null