Лучший способ поставить запятые в больших количествах

10

Я начал новую работу, и она включает в себя просмотр большого числа. Есть ли простой способ добавить запятые в поле intили, decimalчтобы сделать его читаемым?

Например, SQL Server выводит столбец слева, но для собственного здравого смысла мне нужно, чтобы он выглядел как тот, что справа:

2036150 -> 2,036,150  

... или я должен был бы написать несколько отвратительных

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

функция?

Идеальной вещью будут запятые в сетке дисплея, а затем простые целые числа в выводе.

Джеймс
источник

Ответы:

15

Если вы используете SQL Server 2012+ и хотите это сделать (без десятичных разрядов):

SELECT FORMAT(2036150, N'N0')

Если вы работаете с более ранней версией, вам нужно прыгнуть через несколько обручей:

SELECT REPLACE(CONVERT(NVARCHAR(30), CAST((2036150) AS MONEY), 1), N'.00', N'')
Эрик Дарлинг
источник
18

Функция TSM FORMAT может сделать это. НАПРИМЕР

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

выходы

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

Если вы хотите использовать другой разделитель, вы все равно будете использовать, ,который имеет особое значение в строке формата .Net, а затем заменить его ,чем-то другим. НАПРИМЕР:

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

выходы

123_445_678.22
Дэвид Браун - Microsoft
источник