Cara terbaik untuk menempatkan koma ke dalam jumlah besar

10

Saya telah memulai pekerjaan baru dan itu melibatkan melihat sekelompok besar. Apakah ada cara mudah untuk menambahkan koma ke bidang intatau decimalagar dapat dibaca?

Sebagai contoh, SQL Server menampilkan kolom di sebelah kiri, tetapi untuk kewarasan saya sendiri, saya membutuhkannya seperti yang ada di kanan:

2036150 -> 2,036,150  

... Atau saya harus menulis beberapa keji

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

fungsi?

Yang sempurna adalah koma di kotak display, lalu bilangan bulat polos di output.

James
sumber

Jawaban:

15

Jika Anda menggunakan SQL Server 2012+, dan Anda ingin melakukannya (tanpa tempat desimal):

SELECT FORMAT(2036150, N'N0')

Jika Anda menggunakan versi sebelumnya, Anda harus melewati beberapa rintangan:

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

Fungsi FORMAT TSQL dapat melakukannya. MISALNYA

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

output

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

Jika Anda ingin menggunakan pemisah yang berbeda, Anda masih menggunakan ,yang memiliki arti khusus dalam string format .Net, dan kemudian ganti ,dengan yang lain. MISALNYA:

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

output

123_445_678.22
David Browne - Microsoft
sumber