[firebase-br] Concatenação de VARCHAR + NUMERIC

Tecnobyte Informática temp2 em tecnobyte.com.br
Sex Jul 15 12:30:52 -03 2011


Bom dia

Usando stored procedure você consegue fazer isto. O exemplo abaixo foi 
testado no Firebird 2.1. Se necessário, com um pouco mais de trabalho dá 
para colocar o ponto de milhar também.

SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_FloatToStr(
  FloatValue DOUBLE PRECISION,
  Decimals SMALLINT
) RETURNS (
  StrValue VARCHAR(50)
) AS
DECLARE VARIABLE P SMALLINT;
BEGIN
  StrValue = FloatValue;
  P = POSITION('.', StrValue);
  StrValue = SUBSTRING(StrValue FROM 1 FOR P - 1) || ',' || 
SUBSTRING(StrValue FROM P + 1 FOR Decimals);
  SUSPEND;
END^

--- Exemplo de uso

SELECT
  Produto.Descricao,
  'R$ ' ||  (SELECT SP.StrValue FROM SP_FloatToStr(Produto.PrecoVenda, 2) AS 
SP) AS Preco
FROM Produto



Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br

-----Mensagem Original----- 
From: andre conrado
Sent: Friday, July 15, 2011 9:36 AM
To: FireBase
Subject: [firebase-br] Concatenação de VARCHAR + NUMERIC

Saudações amigos!!!

Alguém sabe como concatenar, dentro do BD, um texto com um valor
numérico e obter como resultado um texto com a vírgula como separador
de casa decimal, sem utilizar UDF. Ex:

'Total a pagar : R$ 2.301,48'


-- 
Um Abraço,
André Conrado.

055 21 9176-7013 - Claro 





Mais detalhes sobre a lista de discussão lista