将逗号放入大量数字的最佳方法

Jam*_*mes 11 sql-server number-formatting

我开始了一份新工作,它涉及到一堆大数字。有没有一种简单的方法可以在intordecimal字段中添加逗号以使其可读?

例如,SQL Server 输出左侧的列,但为了我自己的理智,我需要它看起来像右侧的列:

2036150 -> 2,036,150  
Run Code Online (Sandbox Code Playgroud)

...或者我必须写一些令人发指的

left(right(vandalized_data),6),3) + ',' + right(left(vandalized_data),6),3)
Run Code Online (Sandbox Code Playgroud)

功能?

完美的东西是显示网格中的逗号,然后是输出中的纯整数。

Dav*_*oft 18

TSQL 的FORMAT函数可以做到这一点。例如

select format(1232131312342132123.2222,'0,###.##')
Run Code Online (Sandbox Code Playgroud)

产出

1,232,131,312,342,132,123.22
Run Code Online (Sandbox Code Playgroud)

如果要使用不同的分隔符,您仍然使用.Net 格式字符串中,具有特殊含义的which ,然后将 the 替换为,其他内容。例如:

select replace(format(123445678.2222,'#,###.##'),',','_')
Run Code Online (Sandbox Code Playgroud)

产出

123_445_678.22
Run Code Online (Sandbox Code Playgroud)


Eri*_*ing 17

如果您使用的是 SQL Server 2012+,并且想要这样做(不带小数位):

SELECT FORMAT(2036150, N'N0')
Run Code Online (Sandbox Code Playgroud)

如果您使用的是早期版本,则必须跳过一些问题:

SELECT REPLACE(CONVERT(NVARCHAR(30), CAST((2036150) AS MONEY), 1), N'.00', N'')
Run Code Online (Sandbox Code Playgroud)