There is no out-of-the-box solution, however following function should do it:
CREATE FUNCTION dbo.RemoveSpecial (@S VARCHAR(256)) RETURNS VARCHAR(256)
WITH SCHEMABINDING
BEGIN
IF @S IS NULL
RETURN NULL
DECLARE @S2 VARCHAR(256)
SET @S2 = ''
DECLARE @L INT
SET @L = LEN(@S)
DECLARE @P INT
SET @P = 1
WHILE @P <= @L BEGIN
DECLARE @C INT
SET @C = ASCII(SUBSTRING(@S, @P, 1))
IF @C BETWEEN 48 AND 57 OR @C BETWEEN 65 AND 90 OR @C BETWEEN 97 AND 122
SET @S2 = @S2 + CHAR(@C)
SET @P = @P + 1
END
IF LEN(@S2) = 0
RETURN NULL
RETURN @S2
END
UPDATE:
You could use a chain of REPLACE
statements.
SELECT REPLACE([ColumnName]
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
@String,
'9', ''),
'8', ''),
'7', ''),
'6', ''),
'5', ''),
'4', ''),
'3', ''),
'2', ''),
'1', ''),
'0', '') FROM [TableName]