Extrair números de campo varchar em consulta SQL

10/08/2004

0

É possível extrair apenas números de um campo varchar numa consulta SQL? Por exemplo, para extrair apenas o ano de um campo data, usa-se extract(year from data).


Evertonac

Evertonac

Responder

Posts

10/08/2004

Motta

existem funcoes propietarias , tipo to_number do Oracle.

no sql ansi existe o CAST

select cast(numero) as integer
from tabela


creio que a sintaxe é assim


Responder

10/08/2004

Evertonac

Cast converte o campo de varchar para integer, neste caso. O que quero é extrair numa consulta SQL, na cláusula where, apenas números de um campo varchar que pode conter também outros caracteres.

existem funcoes propietarias , tipo to_number do Oracle. no sql ansi existe o CAST select cast(numero) as integer from tabela creio que a sintaxe é assim



Responder

10/08/2004

Motta

conheço funcoes proprietarias do Oracle

substr - equivale ao copy do delphi
instr - eq. ao pos

no ansi , não sei


Responder

20/01/2016

Anderson Possamai

preciso disto tambem... alguem sabe?
Responder

20/01/2016

Huidemar Costa

Faça algo mais ou menos assim:

function SoNumero(texto : String): String; 
var   
  I : Byte; 
begin   
   Result := '';   
   for I := 1 To Length(texto) do      
       if texto [I] In ['0'..'9'] Then        
            Result := Result + texto [I]; 
end; 
Responder

20/01/2016

Lucas Ramos

Função Sql SErver

ALTER FUNCTION [dbo].[SO_NUMERO] ( @PARAMETRO VARCHAR(255) ) RETURNS VARCHAR(255) AS
BEGIN

	DECLARE @TAM INT
	DECLARE @I   INT
	DECLARE @CARACTER VARCHAR(1)
	DECLARE @RESULTADO VARCHAR(60)

	SET @TAM = LEN(@PARAMETRO)
	SET @I   = 1

	SET @RESULTADO = ''
	WHILE @I <= @TAM
	BEGIN

	   SET @CARACTER = SUBSTRING(@PARAMETRO, @I, 1)
	
	   
	   IF (@CARACTER = '0') OR
		  (@CARACTER = '1') OR
		  (@CARACTER = '2') OR
		  (@CARACTER = '3') OR
		  (@CARACTER = '4') OR
		  (@CARACTER = '5') OR
		  (@CARACTER = '6') OR
		  (@CARACTER = '7') OR
		  (@CARACTER = '8') OR
		  (@CARACTER = '9') 

		   SET @RESULTADO = @RESULTADO + @CARACTER

	   SET @I = @I + 1
	END

    RETURN @RESULTADO

END
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar