Вы можете попробовать функцию patindex . Например, просто выбрав FirstName, вы удалите первое вхождение не буквенно-цифрового кода:
SELECT replace(FirstName, substring(FirstName, patindex('%[^a-zA-Z0-9]%', FirstName), 1), '') FROM CONTACTS
Чтобы расширить это до удаления всех вхождений, переместите вызов patindex в функцию , как указано здесь :
CREATE FUNCTION CleanVarchar(@Temp VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^a-zA-Z0-9]%', @Temp) > 0
SET @Temp = STUFF(@Temp, PATINDEX('%[^a-z^0-9]%', @Temp), 1, '')
RETURN @TEmp
END
Наконец, вызовите функцию
Select CleanVarchar(FirstName),CleanVarchar(Surname),CleanVarchar(NationalID) From Contacts