Untungnya(?), di SQL Server 2012+ , Anda sekarang dapat menggunakan FORMAT() untuk mencapai ini:
FORMAT(@s,'#,0.0000')
Di versi sebelumnya, dengan risiko terlihat sangat jelek
[Kueri] :
declare @s decimal(18,10);
set @s = 1234.1234567;
select replace(convert(varchar,cast(floor(@s) as money),1),'.00',
'.'+right(cast(@s * 10000 +10000.5 as int),4))
Pada bagian pertama, kita menggunakan MONEY->VARCHAR untuk menghasilkan koma, tetapi FLOOR() digunakan untuk memastikan desimal menuju .00
. Ini mudah diidentifikasi dan diganti dengan 4 digit setelah tempat desimal menggunakan campuran pergeseran (*10000
) dan CAST sebagai INT (pemotongan) untuk menurunkan angka.
[Hasil] :
| COLUMN_0 |
--------------
| 1,234.1235 |
Tetapi kecuali Anda harus mengirimkan laporan bisnis menggunakan SQL Server Management Studio atau SQLCMD, ini TIDAK PERNAH solusi yang benar, bahkan jika itu bisa dilakukan. Setiap lingkungan front-end atau pelaporan memiliki fungsi yang tepat untuk menangani pemformatan tampilan.