Recebi um e-mail de um internauta que criou uma função em SQL que formata números. A função é bastante simples e pede apenas três parâmetros: valor, separador do milhar e separador decimal.

Segue abaixo o código:
CREATE FUNCTION FormataValor(@Valor DECIMAL(18,2),@SepMilhar CHAR(1),@SepDecimal CHAR(1))
RETURNS  VARCHAR(100) AS
BEGIN
DECLARE @inteiro VARCHAR(98),
@Texto VARCHAR(100),
@decimal VARCHAR(2),
@retorno VARCHAR(100)

SET @Texto = RTRIM(CAST(@Valor AS VARCHAR(50)))
SET @inteiro = CAST(CAST(@Valor AS INTEGER) AS VARCHAR(180))
SET @decimal = SUBSTRING(@Texto, LEN(@Texto)-1,2)
SET @retorno = ”

WHILE (LEN(@inteiro) > 3)
BEGIN
SET @retorno = @SepMilhar + SUBSTRING(@inteiro, LEN(@inteiro)-2, 3) + @retorno
SET @inteiro = SUBSTRING(@inteiro, 1, len(@inteiro)-3)
END

SET @retorno = @inteiro + @retorno
SET @retorno = @retorno + @SepDecimal + @decimal

RETURN @retorno
END

Crédito: Helder

Anúncios