Melhor maneira de colocar vírgulas em grandes números

10

Eu comecei um novo trabalho e envolve olhar para muitos grandes números. Existe uma maneira fácil de adicionar vírgulas a um campo intou decimalpara torná-lo legível?

Por exemplo, o SQL Server gera a coluna à esquerda, mas para minha própria sanidade, preciso que ela se pareça com a da direita:

2036150 -> 2,036,150  

... ou eu teria que escrever algo hediondo

left(right(vandalized_data),6),3) + ',' + right(left(vandalized_data),6),3)

função?

O ideal seria vírgulas na grade de exibição e depois inteiros simples na saída.

James
fonte

Respostas:

15

Se você usa o SQL Server 2012+ e deseja fazê-lo (sem casas decimais):

SELECT FORMAT(2036150, N'N0')

Se você estiver em uma versão anterior, precisará fazer alguns pulos:

SELECT REPLACE(CONVERT(NVARCHAR(30), CAST((2036150) AS MONEY), 1), N'.00', N'')
Erik Darling
fonte
18

A função FORMAT do TSQL pode fazer isso. POR EXEMPLO

select format(1232131312342132123.2222,'0,###.##')

saídas

1,232,131,312,342,132,123.22

Se você deseja usar um separador diferente, você ainda usa ,um significado especial na string de formato .Net e, em seguida, substitui-o ,por outra coisa. POR EXEMPLO:

select replace(format(123445678.2222,'#,###.##'),',','_')

saídas

123_445_678.22
David Browne - Microsoft
fonte