Meilleure façon de mettre des virgules en grand nombre

10

J'ai commencé un nouveau travail et cela implique de regarder un tas de gros chiffres. Existe-t-il un moyen simple d'ajouter des virgules à un champ intou decimalpour le rendre lisible?

Par exemple, SQL Server affiche la colonne de gauche, mais pour ma propre raison, j'en ai besoin pour ressembler à celle de droite:

2036150 -> 2,036,150  

... ou devrais-je écrire des lettres odieuses

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

fonction?

La chose parfaite serait des virgules dans la grille d'affichage, puis des entiers simples dans la sortie.

James
la source

Réponses:

15

Si vous utilisez SQL Server 2012+ et que vous souhaitez le faire (sans décimales):

SELECT FORMAT(2036150, N'N0')

Si vous êtes sur une version antérieure, vous devez sauter à travers quelques cerceaux:

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

La fonction FORMAT de TSQL peut le faire. PAR EXEMPLE

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

les sorties

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

Si vous souhaitez utiliser un séparateur différent, vous utilisez toujours ,ce qui a une signification particulière dans la chaîne de format .Net, puis remplacez le ,par quelque chose d'autre. PAR EXEMPLE:

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

les sorties

123_445_678.22
David Browne - Microsoft
la source