sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo eliminar todos los caracteres no alfabéticos de una cadena en SQL Server?

Prueba esta función:

Create Function [dbo].[RemoveNonAlphaCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^a-z]%'
    While PatIndex(@KeepValues, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

    Return @Temp
End

Llámalo así:

Select dbo.RemoveNonAlphaCharacters('abc1234def5678ghi90jkl')

Una vez que comprenda el código, debería ver que es relativamente simple cambiarlo para eliminar también otros caracteres. Incluso podría hacer que esto sea lo suficientemente dinámico como para pasar su patrón de búsqueda.

Espero que ayude.