Extrair números de campo varchar em consulta SQL
É 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
Curtidas 0
Respostas
Motta
10/08/2004
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
no sql ansi existe o CAST
select cast(numero) as integer
from tabela
creio que a sintaxe é assim
GOSTEI 0
Evertonac
10/08/2004
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
GOSTEI 0
Motta
10/08/2004
conheço funcoes proprietarias do Oracle
substr - equivale ao copy do delphi
instr - eq. ao pos
no ansi , não sei
substr - equivale ao copy do delphi
instr - eq. ao pos
no ansi , não sei
GOSTEI 0
Anderson Possamai
10/08/2004
preciso disto tambem... alguem sabe?
GOSTEI 0
Huidemar Costa
10/08/2004
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;
GOSTEI 0
Lucas Ramos
10/08/2004
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
GOSTEI 0