Função para Formatar números no SQL Server


Segue um script muito bom para formatar números dentro do SQL Server.
CREATE FUNCTION FN015_FORMATA_VALOR_MOEDA(@VALOR DECIMAL(18,2) = NULL)
RETURNS VARCHAR(100)
AS
BEGIN
 SET @VALOR = ISNULL(@VALOR,0)
 DECLARE @VALORSTR VARCHAR(100)
 SET @VALORSTR = REPLACE(CAST(CAST(@VALOR AS DECIMAL(18,2)) AS VARCHAR(100)),'.',',')

 DECLARE @CENTAVOS VARCHAR(3)
 DECLARE @RETANTE VARCHAR(100)
 SET @CENTAVOS = SUBSTRING(@VALORSTR,LEN(@VALORSTR)-2,LEN(@VALORSTR))
 SET @RETANTE = SUBSTRING(@VALORSTR,1,LEN(@VALORSTR)-3)

 DECLARE @RETANTE_LEN INT
 SELECT @RETANTE_LEN = LEN(@RETANTE)

 DECLARE @RETORNO VARCHAR(100)
 SET @RETORNO = ''
 IF @RETANTE_LEN <4
  BEGIN
  SET @RETORNO = @RETANTE+@CENTAVOS
  END
 ELSE
  BEGIN
  WHILE @RETANTE_LEN <> 0
   BEGIN
   SET @RETANTE_LEN = @RETANTE_LEN -2
   SET @RETORNO =  SUBSTRING(@RETANTE,@RETANTE_LEN,3)+'.' + @RETORNO
   SET @RETANTE_LEN = @RETANTE_LEN -1
   IF @RETANTE_LEN< 0
   BREAK
   END
    SET @RETORNO = SUBSTRING (@RETORNO,1,LEN(@RETORNO)-1) +@CENTAVOS
  END

 RETURN @RETORNO
END
Gostou da dica? Comente e Compartilhe

0 Comentários