But be careful! If the string contains no space that will throw an error.Eample : DECLARE @foo TABLE ( [val] VARCHAR(255) )INSERT @foo ([val]) SELECT 'John Smith'UNION SELECT 'NoSpaceHere'SELECT SUBSTRING([val], 1, CHARINDEX(' ', [val]) -1) FROM @fooResults in:(2 row(s) affected)Msg 536, Level 16, State 5, Line 9Invalid length parameter passed to the SUBSTRING function.
To account for that you can use a CASE statement and a LIKE condition, or wrap the CHARINDEX. Like this DECLARE @foo TABLE ( [val] VARCHAR(255) )INSERT @foo ([val]) SELECT 'John Smith'UNION SELECT 'NoSpaceHere'SELECT SUBSTRING([val], 1, ISNULL(NULLIF(CHARINDEX(' ', [val]) -1, -1), LEN([val]))) FROM @fooSELECT CASE WHEN [val] LIKE '% %' THEN SUBSTRING([val], 1, CHARINDEX(' ', [val]) -1) ELSE [val] END FROM @fooCharlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION