Najlepszy sposób na umieszczenie przecinków w dużych liczbach


10

Rozpocząłem nową pracę, która polega na przyglądaniu się dużej grupie. Czy istnieje prosty sposób dodania przecinków do pola intlub, decimalaby był czytelny?

Na przykład SQL Server wyświetla kolumnę po lewej stronie, ale dla własnego zdrowia potrzebuję, aby wyglądała jak ta po prawej:

2036150 -> 2,036,150  

... czy musiałbym napisać coś ohydnego

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

funkcjonować?

Idealną rzeczą byłyby przecinki w siatce wyświetlania, a następnie zwykłe liczby całkowite na wyjściu.

Odpowiedzi:


15

Jeśli korzystasz z SQL Server 2012+ i chcesz to zrobić (bez miejsc dziesiętnych):

SELECT FORMAT(2036150, N'N0')

Jeśli korzystasz z wcześniejszej wersji, musisz przeskoczyć przez kilka obręczy:

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

18

Funkcja FORMAT TSQL może to zrobić. NA PRZYKŁAD

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

wyjścia

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

Jeśli chcesz użyć innego separatora, nadal używasz, ,który ma specjalne znaczenie w łańcuchu formatu .Net, a następnie zamieniasz go na ,coś innego. NA PRZYKŁAD:

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

wyjścia

123_445_678.22
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.