Segue um script muito bom para formatar números dentro do SQL Server.
CREATE FUNCTION FN015_FORMATA_VALOR_MOEDA(@VALOR DECIMAL(18,2) = NULL)Gostou da dica? Comente e Compartilhe
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
0 Comentários