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

Cara Memformat Angka dengan Koma di SQL Server

SQL Server memberi kami cara cepat dan mudah untuk memformat angka dengan koma yang disisipkan di tempat yang relevan. Misalnya, 1234.56 bisa menjadi 1.234,56 . Atau bisa menjadi 1.234,56 , jika itu adalah lokal yang Anda gunakan.

Contoh

Kita dapat menggunakan FORMAT() berfungsi untuk memformat angka dengan koma. Saat kami menggunakan fungsi ini, kami meneruskan nomor dan string format. String format menentukan bagaimana nomor akan diformat saat dikembalikan.

FORMAT() function mengembalikan representasi string yang diformat dari nomor, berdasarkan nilai yang kami berikan.

Berikut ini contoh untuk didemonstrasikan:

SELECT 
    FORMAT(123456.789, 'N') AS "Number",
    FORMAT(123456.789, 'P') AS "Percent",
    FORMAT(123456.789, 'C') AS "Currency";

Hasil:

+------------+----------------+-------------+
| Number     | Percent        | Currency    |
|------------+----------------+-------------|
| 123,456.79 | 12,345,678.90% | $123,456.79 |
+------------+----------------+-------------+

Contoh ini menunjukkan tiga string format numerik standar:

  • Jika kita hanya ingin nomor yang diformat, kita dapat menggunakan N
  • Jika ingin diformat dalam persentase, kita dapat menggunakan P
  • Untuk mata uang, kita bisa menggunakan C .

SQL Server cukup pintar untuk mengetahui lokal Anda saat ini (berdasarkan bahasa sesi saat ini), dan memformat hasilnya sesuai dengan konvensi lokal tersebut. Ini penting, karena tidak semua orang tinggal di negara yang menggunakan koma sebagai pemisah ribuan, dan titik sebagai pemisah desimal.

Selanjutnya, FORMAT() function menerima argumen "budaya" opsional ketiga, yang memungkinkan Anda menentukan lokal secara eksplisit.

Ini contoh yang saya maksud:

SELECT 
    FORMAT(123456.789, 'N', 'de-de') AS "Number",
    FORMAT(123456.789, 'P', 'de-de') AS "Percent",
    FORMAT(123456.789, 'C', 'de-de') AS "Currency";

Hasil:

+------------+-----------------+--------------+
| Number     | Percent         | Currency     |
|------------+-----------------+--------------|
| 123.456,79 | 12.345.678,90 % | 123.456,79 € |
+------------+-----------------+--------------+

Dalam hal ini saya tentukan de-de sebagai budaya, yang berarti bahwa hasilnya akan diformat sesuai dengan konvensi Jerman. Kita dapat melihat bahwa titik penuh digunakan sebagai pemisah grup, dan koma digunakan untuk pemisah desimal.

Jika argumen ketiga dihilangkan, bahasa sesi saat ini akan digunakan.

String Format Kustom

Anda juga dapat menggunakan penentu format khusus untuk membuat string format khusus Anda sendiri. Misalnya, # karakter adalah pengganti digit, 0 adalah placeholder nol, koma (, ) adalah pengganti untuk pemisah grup, dan titik (. ) adalah pengganti untuk pemisah desimal.

Ini benar terlepas dari lokal yang digunakan – SQL Server akan menentukan karakter mana yang akan digunakan untuk grup dan pemisah desimal berdasarkan lokal saat ini.

Contoh:

SELECT 
    FORMAT(123456.789, '###,###,###.##', 'en-us') AS "US English",
    FORMAT(123456.789, '###,###,###.##', 'de-de') AS "German";

Hasil:

+--------------+------------+
| US English   | German     |
|--------------+------------|
| 123,456.79   | 123.456,79 |
+--------------+------------+

Dalam kedua kasus, saya menggunakan string format yang sama, namun SQL Server mengembalikan pemisah grup dan desimal yang berlaku untuk lokal yang ditentukan (yang ditentukan dengan argumen "budaya" ketiga).

Dalam contoh di atas, string format menyertakan lebih banyak digit daripada angka sebenarnya. Terlepas dari itu, SQL Server memilih untuk tidak mengembalikan nol di depan. Itu karena kami menggunakan # penentu format.

Jika kita ingin SQL Server mengembalikan nol di depan, kita dapat menggunakan 0 penentu format:

SELECT 
    FORMAT(123456.789, '000,000,000.00', 'en-us') AS "US English",
    FORMAT(123456.789, '000,000,000.00', 'de-de') AS "German";

Hasil:

+----------------+----------------+
| US English     | German         |
|----------------+----------------|
| 000,123,456.79 | 000.123.456,79 |
+----------------+----------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:huruf besar hanya huruf pertama

  2. Menggunakan Indeks di Tabel yang Dioptimalkan Memori SQL Server

  3. Kembalikan Nomor Minggu ISO dari Tanggal di SQL Server (T-SQL)

  4. Menggunakan INNER JOIN untuk Menggabungkan Tabel SQL Server dan Menampilkannya di ASP.NET Webforms

  5. Memecahkan Masalah saat Bekerja dengan Tanggal dan Waktu di SQL Server