• Imprimir

Confesso este codigo não é meu achei na net em http://sqlbrasil.blogspot.com.br/2011/08/funcao-para-retornar-somente-numeros-em.html

Mas achei o codigo tão interessante que estou replicando 

 

Vai la : 

 

 

CREATE FUNCTION [dbo].[TiraLetras]
 (
 @Resultado VARCHAR(8000)
 )
 RETURNS VARCHAR(8000)
 AS
 BEGIN
    DECLARE @CharInvalido SMALLINT
    SET @CharInvalido = PATINDEX('%[^0-9]%', @Resultado)
    WHILE @CharInvalido > 0
    BEGIN
       SET @Resultado = STUFF(@Resultado, @CharInvalido, 1, '')
       SET @CharInvalido = PATINDEX('%[^0-9]%', @Resultado)
    END
    SET @Resultado = @Resultado
    RETURN @Resultado
 END

 

Para testar :

Select dbo.TiraLetras('AB12CD34%¨&*(56')
Resultado: '123456'


Select dbo.TiraLetras('95.012-500') 'CEP'
Resultado:  '95012500'