[firebase-br] Retirar valores em comando SQL.
Robson Zambroti
rlzambroti em gmail.com
Sex Jun 15 12:25:21 -03 2012
Pode usar esta procedure para isso:
CREATE PROCEDURE SP_LTRIM_CHAR (
P_VALOR VARCHAR(1000),
P_CHAR CHAR(1))
RETURNS (
R_VALUE VARCHAR(1000))
AS
DECLARE VARIABLE V_POSICAO INTEGER;
DECLARE VARIABLE V_TAMANHO INTEGER;
DECLARE VARIABLE V_CHAR CHAR(1);
DECLARE VARIABLE V_VALIDAR CHAR(1);
begin
R_VALUE = '';
V_POSICAO = 1;
V_TAMANHO = CHAR_LENGTH( :P_VALOR );
V_VALIDAR = 'S';
WHILE (:V_POSICAO <= :V_TAMANHO) DO
BEGIN
V_CHAR = SUBSTRING( :P_VALOR FROM :V_POSICAO FOR 1 );
IF (:V_VALIDAR = 'S') THEN
BEGIN
IF ((:V_CHAR = :P_CHAR) OR (:V_CHAR = ' ')) THEN
V_VALIDAR = 'S';
ELSE
V_VALIDAR = 'N';
END
IF (V_VALIDAR = 'N') THEN
BEGIN
R_VALUE = :R_VALUE || :V_CHAR;
END
V_POSICAO = :V_POSICAO + 1;
END
SUSPEND;
end;
Exemplo de uso:
EX.01
SELECT R_VALUE
FROM SP_LTRIM_CHAR('00000000A00123','0')
EX.02
SELECT (SELECT R_VALUE FROM SP_LTRIM_CHAR('00000000A00123','0')) AS CAMPOX
FROM RDB$DATABASE
No exemplo 02 você pode colocar o select pra retornar como se fosse um
campo.
Att.
Robson Zambroti
Em 15 de junho de 2012 11:27, user <rlopesjr em gmail.com> escreveu:
> Matheus Mathias escreveu:
>
>> Boa tarde,
>> eu estou com um problema aqui que seria o seguinte.
>> eu tenho um valor "00000000A00123" e não consegui ver uma solução para
>> fazer
>> retirar os 0 a esquerda.
>> O resultado ficaria o seguindo "A00123".
>> não sei se isso seria possivel fazer no Firebird, mas no Delphi mesmo ja
>> consegui fazer isso.
>> Eu precisava para poder fazer a comparação.
>>
>>
>
> Tente essa:
>
> select trim (leading '0' from '00000000A00123') from rdb$database
>
>
> O leading retira caracteres à esquerda e o trainling retira caracteres à
> direita.
>
>
> ______________________________**________________
> 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<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>
--
Att.
Robson Zambroti
Mais detalhes sobre a lista de discussão lista