Fórum Conctenaçao de campos #415621

19/04/2012

0

Olá a todos,

Preciso concatenar alguns campos de uma tabela, e alinha-los.
Ex:
Select Nome || - || Saldo From Clientes

O resultado do select acima me mostra:
Fulano aaaaaaa-12,00
Fulano abababababababa-12,00
Fulano ab-12,00

Preciso que saia assim:
Fulano aaaaaaa - 12,00
Fulano abababababababa - 12,00
Fulano ab - 12,00

Alguem tem alguma solucao ?

Obrigado.

Angelo Zagatti

Angelo Zagatti

Responder

Posts

19/04/2012

Angelo Zagatti

Olá a todos,

Preciso concatenar alguns campos de uma tabela, e alinha-los.
Ex:
Select Nome || - || Saldo From Clientes

O resultado do select acima me mostra:
Fulano aaaaaaa-12,00
Fulano abababababababa-12,00
Fulano ab-12,00

Preciso que saia assim:
Fulano aaaaaaa - 12,00
Fulano abababababababa - 12,00
Fulano ab - 12,00

Alguem tem alguma solucao ?

Obrigado.





por algum motivo o post está desconfigurado

Preciso que saia assim:
Nome Valor
Fulano aaaaaaa - 12,00
Fulano abababababababa - 12,00
Fulano ab - 12,00
Responder

Gostei + 0

19/04/2012

Angelo Zagatti

Olá a todos,

Preciso concatenar alguns campos de uma tabela, e alinha-los.
Ex:
Select Nome || - || Saldo From Clientes

O resultado do select acima me mostra:
Fulano aaaaaaa-12,00
Fulano abababababababa-12,00
Fulano ab-12,00

Preciso que saia assim:
Fulano aaaaaaa..............................................12,00
Fulano abababababababa................................12,00
Fulano ab.......................................................12,00

Alguem tem alguma solucao ?

Obrigado.





por algum motivo o post está desconfigurado

Preciso que saia assim:
Nome Valor
Fulano aaaaaaa..............................................12,00
Fulano abababababababa................................12,00
Fulano ab.......................................................12,00
Responder

Gostei + 0

19/04/2012

Joel Rodrigues

Talvez você esteja tendo um erro de conversão, selecione o Saldo como texto usando
CAST(Saldo AS VARCHAR) AS Saldo
;
Boa sorte.
Responder

Gostei + 0

19/04/2012

Joel Rodrigues

Acho que você vai fazer algo assim:
SELECT Nome||REPLICATE(´.´, 50-CHAR_LENGTH(NOME))||CAST(Saldo AS VARCHAR) AS Saldo


Onde REPLICATE é uma função que repete um determinado caracter várias vezes. No caso, eu repliquei o ponto (.) uma quantidade de caracteres igual a 50 - o comprimento do nome, para padronizar em 50 caracteres antes do valor.

Não sei se existe a função REPLICATE em Firebird, se não existir, você dá um jeito de encontrar uma.

Boa sorte.
Responder

Gostei + 0

19/04/2012

Angelo Zagatti

Joel, obrigado pela ajuda, mas nao encontrei a funcao replicate() no firebird.
Tambem nao sei como fazer uma udf e nao achei nada na net.
Caso vc tenha alguma sugestao, eu agradeço.

Abraços,
Responder

Gostei + 0

19/04/2012

Joel Rodrigues

Dá uma olhada nesses dois links, talvez te ajudem. No momento não vou nem poder te ajudar muito, pois faz muito tempo que não uso Firebird e, quando usei, nunca fui tão fundo.
http://www.firebase.com.br/fb/downloads.php?categ=6
http://gustavohenriquephn.wordpress.com/2008/04/17/utilizando-udf-no-firebird/

A ideia da função é
ENTRADA:
CARACTER:TEXTO, QUANTIDADE:INTEIRO;

SAÍDA
RESULTADO:TEXTO;

VARIÁVEIS
I:INTEIRO;

INÍCIO

RESULTADO = ´´;
PARA I DE 0 ATÉ QUANTIDADE
RESULTADO = RESULTADO + CARACTER;

FIM



Deu pra sacar?
Responder

Gostei + 0

19/04/2012

Joel Rodrigues

Em ÚLTIMO CASO, tenta criar um Stored Procedure que faça a mesma coisa.
Responder

Gostei + 0

21/04/2012

Emerson Nascimento

Select (Nome as char(30)) || ` - ´ || Saldo From Clientes
Responder

Gostei + 0

21/04/2012

Angelo Zagatti

Achei um UDF que replica um caracter.

Vou fazer mais testes.

Obrigado a todos pela ajuda.
Responder

Gostei + 0

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

Aceitar