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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar