Artikel ini memberikan referensi untuk penentu format numerik khusus yang dapat digunakan saat memformat angka menggunakan FORMAT()
fungsi di SQL Server. Contoh disertakan.
Format String | Deskripsi/Contoh |
---|---|
0 | Nol placeholder . Mengganti angka nol dengan angka yang sesuai jika ada; jika tidak, nol akan muncul di string hasil. Contoh : SELECT FORMAT(12.34, '0') R1, FORMAT(012.34, '00') R2, FORMAT(12.34, '000') R3, FORMAT(012.34, '0000') R4, FORMAT(12.54, '00') R5; +------+------+------+------+------+ | R1 | R2 | R3 | R4 | R5 | |------+------+------+------+------| | 12 | 12 | 012 | 0012 | 13 | +------+------+------+------+------+ |
# | Tempat penampung digit . Mengganti simbol “#” dengan digit yang sesuai jika ada; jika tidak, tidak ada digit yang muncul di string hasil. Tidak ada digit yang muncul dalam string hasil jika digit yang sesuai dalam string input adalah 0 yang tidak signifikan. Contoh : SELECT FORMAT(12.34, '#') R1, FORMAT(012.34, '##') R2, FORMAT(12.34, '###') R3, FORMAT(012.34, '####') R4, FORMAT(12.54, '##') R5; +------+------+------+------+------+ | R1 | R2 | R3 | R4 | R5 | |------+------+------+------+------| | 12 | 12 | 12 | 12 | 13 | +------+------+------+------+------+ |
. | Titik desimal . Menentukan lokasi pemisah desimal dalam string hasil. Contoh : SELECT FORMAT(12.34, '0.0', 'en-US') R1, FORMAT(12.34, '.00', 'en-US') R2, FORMAT(12.34, '.', 'en-US') R3, FORMAT(12.34, '.00', 'fr-FR') R4; +------+-------+------+-------+ | R1 | R2 | R3 | R4 | |------+-------+------+-------| | 12.3 | 12.34 | 12 | 12,34 | +------+-------+------+-------+ |
, | Pemisah grup dan penskalaan angka . Dapat digunakan sebagai pemisah grup (juga dikenal sebagai pemisah seribu) dan penentu penskalaan angka.
Untuk menentukan pemisah grup, tempatkan satu koma atau lebih di antara dua digit placeholder (0 atau #) yang memformat digit integral dari suatu angka. Ini menghasilkan karakter pemisah grup yang disisipkan di antara setiap grup angka di bagian integral dari output. Untuk menentukan penentu penskalaan angka, tempatkan satu koma atau lebih tepat di sebelah kiri titik desimal eksplisit atau implisit. Contoh – Sebagai Pemisah Grup : SELECT FORMAT(12345678, '#,#', 'en-US') 'US English', FORMAT(12345678, '#,#', 'fr-FR') 'French', FORMAT(12345678, '#,#', 'es-ES') 'Spanish'; +--------------+------------+------------+ | US English | French | Spanish | |--------------+------------+------------| | 12,345,678 | 12 345 678 | 12.345.678 | +--------------+------------+------------+ Contoh – Sebagai Penentu Penskalaan Angka : SELECT FORMAT(12000, '#,', 'en-US') 'R1', FORMAT(1234567890, '#,', 'en-US') R2, FORMAT(1234567890, '#,,', 'en-US') R3; +------+---------+------+ | R1 | R2 | R3 | |------+---------+------| | 12 | 1234568 | 1235 | +------+---------+------+ Contoh – Sebagai Keduanya : SELECT FORMAT(1234567890, '#,#,', 'en-US') R1, FORMAT(1234567890, '#,#,,', 'en-US') R2; +-----------+-------+ | R1 | R2 | |-----------+-------| | 1,234,568 | 1,235 | +-----------+-------+ |
% | Penampung persentase . Mengalikan angka dengan 100 dan menyisipkan simbol persentase lokal dalam string hasil. Contoh : SELECT FORMAT(0.1234, '#.# %', 'en-US') R1, FORMAT(0.1235, '#.#%', 'zh-cn') R2, FORMAT(0.125, '#. %', 'en-US') R3, FORMAT(0.1234, '%#.00,', 'tr') R4, FORMAT(0.1234, '#.#%', 'it') R5; +--------+-------+------+--------+-------+ | R1 | R2 | R3 | R4 | R5 | |--------+-------+------+--------+-------| | 12.3 % | 12.4% | 13 % | %12,34 | 12,3% | +--------+-------+------+--------+-------+ |
‰ | Tempat penampung per seribu . Mengalikan angka dengan 1000 dan menyisipkan simbol per seribu yang dilokalkan ke dalam string hasil. Contoh : SELECT FORMAT(0.01234, '#.# ‰', 'en-US') 'R1', FORMAT(0.01235, '#.# ‰', 'en-US') R2, FORMAT(0.0125, '#. ‰', 'en-US') R3, FORMAT(0.01234, '#.# ‰', 'fr-FR') R4; +--------+--------+------+--------+ | R1 | R2 | R3 | R4 | |--------+--------+------+--------| | 12.3 ‰ | 12.4 ‰ | 13 ‰ | 12,3 ‰ | +--------+--------+------+--------+ |
|
Notasi eksponensial . Jika diikuti oleh setidaknya satu nol ( Contoh : SELECT FORMAT(123456789, '0e0') R1, FORMAT(123456789, '0e+0') R2, FORMAT(123456789, '0E+00') R3, FORMAT(1234.56789, '0.0##e+00') R4, FORMAT(12.3456789-12, '0e-0') R5; +------+------+-------+-----------+------+ | R1 | R2 | R3 | R4 | R5 | |------+------+-------+-----------+------| | 1e8 | 1e+8 | 1E+08 | 1.235e+03 | 3e-1 | +------+------+-------+-----------+------+ |
| Karakter pelarian . Menyebabkan karakter berikutnya ditafsirkan sebagai literal, bukan sebagai penentu format khusus. Contoh : SELECT FORMAT(123, '\#0000') Result; +----------+ | Result | |----------| | #0123 | +----------+ |
| Pembatas string literal . Menunjukkan bahwa karakter terlampir harus disalin ke string hasil tidak berubah. Contoh : SELECT FORMAT(23, '## Degrees') Result; +------------+ | Result | |------------| | 23 Degrees | +------------+ |
| Pemisah bagian . Ini adalah penentu format bersyarat yang mendefinisikan bagian dengan string format terpisah untuk angka positif, negatif, dan nol. Ini memungkinkan Anda untuk menerapkan pemformatan yang berbeda ke angka bergantung pada apakah nilainya positif, negatif, atau nol. String format khusus dapat berisi hingga tiga bagian yang dipisahkan oleh titik koma.
Perhatikan bahwa nilai negatif selalu ditampilkan tanpa tanda minus saat pemisah bagian digunakan. Jika Anda ingin nilai akhir yang diformat memiliki tanda minus, Anda harus secara eksplisit menyertakan tanda minus sebagai bagian dari string format kustom. Ini juga berlaku untuk pemformatan lain yang sudah ada sebelumnya yang terkait dengan angka.
Contoh – Satu Bagian (tidak ada pemisah bagian) SELECT FORMAT(123, '0 (Number)') Positive, FORMAT(-123, '0 (Number)') Negative, FORMAT(0, '0 (Number)') Zero; +--------------+---------------+------------+ | Positive | Negative | Zero | |--------------+---------------+------------| | 123 (Number) | -123 (Number) | 0 (Number) | +--------------+---------------+------------+ Perhatikan bahwa tanda minus tetap utuh, karena saya tidak menggunakan pemisah bagian apa pun. Contoh – Dua Bagian : /* EXAMPLE 1 - Same format string, different values */ SELECT FORMAT(123, '0 (Positive or Zero); 0 (Negative)') Positive, FORMAT(-123, '0 (Positive or Zero); 0 (Negative)') Negative, FORMAT(0, '0 (Positive or Zero); 0 (Negative)') Zero; +------------------------+-----------------+----------------------+ | Positive | Negative | Zero | |------------------------+-----------------+----------------------| | 123 (Positive or Zero) | 123 (Negative) | 0 (Positive or Zero) | +------------------------+-----------------+----------------------+ /* EXAMPLE 2 - Rounding. Negative values rounded to zero get formatted under the first format string. */ SELECT FORMAT(0.1, '0 (Positive or Zero); 0 (Negative)') Positive, FORMAT(-0.1, '0 (Positive or Zero); 0 (Negative)') Negative; +----------------------+----------------------+ | Positive | Negative | |----------------------+----------------------| | 0 (Positive or Zero) | 0 (Positive or Zero) | +----------------------+----------------------+ Contoh – Tiga Bagian : /* EXAMPLE 1 - Basic Usage */ SELECT FORMAT(123, '0 (Positive); 0 (Negative); 0 (Zero)') Result; +----------------+ | Result | |----------------| | 123 (Positive) | +----------------+ /* EXAMPLE 2 - Same format string, different values */ SELECT FORMAT(123, '0 (Positive); 0 (Negative); 0 (Zero)') 'Positive', FORMAT(-123, '0 (Positive); 0 (Negative); 0 (Zero)') 'Negative', FORMAT(0, '0 (Positive); 0 (Negative); 0 (Zero)') 'Zero', FORMAT(0.123, '0 (Positive); 0 (Negative); 0 (Zero)') 'Rounded to Zero'; +----------------+----------------+-----------+-------------------+ | Positive | Negative | Zero | Rounded to Zero | |----------------+----------------+-----------+-------------------| | 123 (Positive) | 123 (Negative) | 0 (Zero) | 0 (Zero) | +----------------+----------------+-----------+-------------------+ /* EXAMPLE 3 - Second format string is empty */ SELECT FORMAT(123, '0 (Positive);; 0 (Zero)') 'Positive', FORMAT(-123, '0 (Positive);; 0 (Zero)') 'Negative', FORMAT(0, '0 (Positive);; 0 (Zero)') 'Zero', FORMAT(0.123, '0 (Positive);; 0 (Zero)') 'Rounded to Zero'; +----------------+-----------------+-----------+-------------------+ | Positive | Negative | Zero | Rounded to Zero | |----------------+-----------------+-----------+-------------------| | 123 (Positive) | -123 (Positive) | 0 (Zero) | 0 (Zero) | +----------------+-----------------+-----------+-------------------+ |
Lainnya | Semua karakter lainnya. Karakter disalin ke string hasil tidak berubah. Contoh : SELECT FORMAT(12, '# °C') Result; +----------+ | Result | |----------| | 12 °C | +----------+ |
Daftar di atas adalah daftar lengkap string format kustom .NET yang valid, berdasarkan informasi dari dokumentasi resmi .NET untuk String Format Kustom di situs web Microsoft pada saat penulisan.
Alasan ini relevan dengan SQL Server FORMAT()
fungsinya adalah hanya menerima string format .NET Framework yang valid.
Selain kebiasaan di atas format string, Anda juga dapat menggunakan standar memformat string. Berikut adalah daftar lengkap String Format Numerik Standar yang dapat Anda gunakan dengan SQL Server.
Anda juga dapat memformat nilai tanggal dan waktu. Lihat daftar String Format Tanggal dan Waktu Standar serta String Format Tanggal dan Waktu Kustom yang dapat Anda gunakan dengan FORMAT()
fungsi.
Jika Anda masih mencoba memahami apa itu format string, lihat Apa itu Format String di SQL Server? untuk pemahaman dasar tentang format string dan bagaimana mereka berhubungan dengan FORMAT()
fungsi.