[firebase-br] Função NUMBER_ONLY
Marcos R. Weimer
marcosweimer em gmail.com
Sex Nov 22 11:28:40 -03 2019
Cria a function:
CREATE OR ALTER FUNCTION only_numbers (
avalue VARCHAR(100))
RETURNS VARCHAR(100)
AS
DECLARE VARIABLE I INTEGER;
DECLARE VARIABLE R VARCHAR(100);
DECLARE VARIABLE C CHAR(1);
BEGIN
IF (AVALUE IS NULL) THEN
RETURN NULL;
R = '';
I = 0;
WHILE (I < CHARACTER_LENGTH(AVALUE)) DO
BEGIN
C = SUBSTRING(AVALUE FROM I + 1 FOR 1);
IF (C SIMILAR TO '[[:DIGIT:]]') THEN
R = R || C;
I = I + 1;
END
RETURN R;
END
e no select....
select only_numbers(cnpj) from cliente
-=Ma®©oS=-
Marcos R. Weimer
Pessoas quietas têm as mentes mais barulhentas - Stephen Hawking
Viver significa ter algumas alegrias e muito sofrimento - Pepe Mujica
Em sex., 22 de nov. de 2019 às 11:23, Carlos H. Cantu <
listas em warmboot.com.br> escreveu:
> Vc pode usar a função interna replace pra remover os . e -
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> PG> Firebird 2.5.9
>
> PG> Quando necessitamos fazer uma pesquisa
> PG> semelhante a este exemplo:
>
> PG> SELECT...
> PG> FROM ...
> PG> WHERE NUMBER_ONLY(IE) = 123456789
>
>
> PG> No Banco a Inscrição Estadual pode estar com ou sem máscara:
> PG> 12345678-9
> PG> 123.456.789
>
> PG> Uma solução seria usar UDF.
>
> PG> Sem usar UDF tem alguma outra solução?
> PG> --
> PG> Paulo Esteves
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
Mais detalhes sobre a lista de discussão lista