Jump to content

jothaz

Members
  • Content count

    1180
  • Joined

  • Last visited

Everything posted by jothaz

  1. A idéia é criar uma função de usuário para mascarar/formatar valores numéricos e monetários direto no SQL. create FUNCTION FormataValor(@Valor Decimal(18,4),@SepMilhar char(1),@SepDecimal Char(1))Returns Varchar(50) ASBegin Declare @Inteiro int, @Texto varchar(50), @ValorDecimal varchar(04) Set @Texto = RTrim(Cast(@Valor as varchar(50))) Set @Inteiro = Cast(@Valor as Integer) Set @ValorDecimal = SubString(@Texto,Len(@Texto)-3,4) If Len(@Inteiro) = 4 Set @Texto = SubString(Cast(@Inteiro as varchar(10)),1,1) + @SepMilhar + SubString(Cast(@Inteiro as varchar(10)),2,3) + @SepDecimal + @ValorDecimal If Len(@Inteiro) = 5 Set @Texto = SubString(Cast(@Inteiro as varchar(10)),1,2) + @SepMilhar + SubString(Cast(@Inteiro as varchar(10)),2,3) + @SepDecimal + @ValorDecimal If Len(@Inteiro) = 6 Set @Texto = SubString(Cast(@Inteiro as varchar(10)),1,3) + @SepMilhar + SubString(Cast(@Inteiro as varchar(10)),2,3) + @SepDecimal + @ValorDecimal Return @TextoEndPara utlizá-la: SELECT dbo.FormataValor(2560.69,'.',',') OBS: sempre utilizar o . (ponto) como separador de decimal. Espero que possa ser útil a alguém. Fonte/Autor/link AUTOR: Adaptei esta função de um post do forum imasters (do qual não tenho o link). Caso alguém seja o autor favor postar o link para que os créditos possam ser atribuido. Dúvidas, criticas, contribuições, correções e adições serão bem vindas.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.