Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server memformat tempat desimal dengan koma

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengekstrak substring khusus ini di SQL Server?

  2. DATEDIFF() Mengembalikan Hasil yang Salah di SQL Server? Baca ini.

  3. SQL Server :mengembalikan nama kolom berdasarkan nilai record

  4. Format HTML di sp_send_dbmail

  5. SSIS - Melakukan Pencarian di Tabel lain untuk mendapatkan Kolom Terkait