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 | +----------------+----------------+