Eliminar signos de una cadena en SQL Server

publicado por: Anonymous

Tengo una duda con respecto a una cadena de alfanuméricos, tengo que validar que dicha cadena si trae un alfanumérico, por ejemplo:

EJEMPLO123+

Eliminar el sigo "+" y quedarme con el alfanumérico solamente.

solución

Podrías crearte una función que elimine los caracteres que no te interesan.

CREATE FUNCTION dbo.EliminaNoAlfanumericos(@variable varchar(100)) RETURNS VARCHAR(100)
BEGIN
    DECLARE @posicion INT
    SET @posicion = PATINDEX('%[^A-Za-z0-9]%',@variable )
    WHILE @posicion > 0
       BEGIN
          SET @variable = STUFF(@variable ,@posicion ,1,'')
          SET @posicion = PATINDEX('%[^A-Za-z0-9]%',@variable )
       END
    RETURN @variable
END
GO

La función lo que hace es un bucle buscando, con PATINDEX, los caracteres no alfanuméricos que contiene la @variable hasta que no quede ninguno, y mediante la función STUFF, va sustituyendo por blanco '' el carácter que encuentra en la @posición dentro de la @variable.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *