Di SQL Server, T-SQL STR()
fungsi mengembalikan data karakter yang dikonversi dari data numerik. Nilai kembalian memiliki tipe pengembalian varchar .
Anda memberikan data numerik sebagai argumen saat memanggil fungsi. Fungsi kemudian mengubahnya menjadi data karakter. Ada juga dua argumen opsional yang dapat Anda gunakan untuk menentukan panjang, dan jumlah tempat di sebelah kanan titik desimal.
Sintaks
Sintaksnya seperti ini:
STR ( float_expression [ , panjang [ , desimal ] ] )
Dimana float_expression adalah ekspresi numerik perkiraan (float ) tipe data dengan titik desimal.
panjang adalah argumen opsional yang dapat Anda gunakan untuk menentukan panjang total. Ini termasuk titik desimal, tanda, angka, dan spasi. Standarnya adalah 10.
desimal adalah jumlah tempat di sebelah kanan titik desimal. Ini bisa menjadi nilai maksimum 16. Jika lebih dari itu, dipotong menjadi 16.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh cara kerjanya:
SELECT STR(123.45) SEBAGAI Hasil;
Hasil:
+------------+| Hasil ||------------|| 123 |+--------+
Contoh 2 – Pembulatan
Secara default, angka dibulatkan menjadi bilangan bulat. Jika kita menyesuaikan input dari contoh sebelumnya (misalnya, menambah bagian pecahan dari .45
ke .55
) kita mendapatkan yang berikut:
SELECT STR(123.55) SEBAGAI Hasil;
Hasil:
+------------+| Hasil ||------------|| 124 |+------------+
Contoh 3 – Panjang
Saat menggunakan panjang opsional parameter, nilainya harus lebih besar atau sama dengan bagian angka sebelum koma ditambah tanda angka (jika ada).
Misalnya, berikut ini baik-baik saja, karena length lebih besar dari bagian angka sebelum koma:
SELECT STR(123.55, 4) SEBAGAI Hasil;
Hasil:
+----------+| Hasil ||----------|| 124 |+----------+
Namun, contoh berikut menunjukkan apa yang terjadi ketika length nilainya terlalu kecil:
SELECT STR(123.55, 2) SEBAGAI Hasil;
Hasil:
+----------+| Hasil ||----------|| ** |+----------+
Perhatikan juga bahwa panjang menentukan panjang keluaran, dan termasuk titik desimal, tanda, angka, dan spasi. Panjang default adalah 10.
Berikut adalah contoh untuk menunjukkan perbedaan output tergantung pada nilai length argumen:
PILIH 123 AS '123', STR(123, 3) AS '3', STR(123, 10) AS '10', STR(123, 16) AS '16';
Hasil:
+-------+-----+------------+------------------+ | 123 | 3 | 10 | 16 ||-------+-----+------------+-------|| 123 | 123 | 123 | 123 |+-------+-----+------------+------------------+Untuk cara lain untuk mendemonstrasikan ini, dalam contoh berikut saya memangkas output menggunakan
TRIM()
fungsi (dan bandingkan dengan versi yang belum dipotong):PILIH TRIM(STR(123, 16)) SEBAGAI 'A', STR(123, 16) SEBAGAI 'B';Hasil:
+-----+------------------+| Sebuah | B ||-----+------------------|| 123 | 123 |+-----+------------------+Contoh 4 – Tempat Desimal
Berikut ini contoh penggunaan desimal opsional parameter:
SELECT STR(123.55, 8, 4) SEBAGAI Hasil;Hasil:
+----------+| Hasil ||----------|| 123.5500 |+----------+Perhatikan bahwa saya meningkatkan nilai untuk length untuk mengakomodasi tempat desimal.
Jika saya mengurangi panjang nilai ke
6
, saya mengerti ini:SELECT STR(123.55, 6, 4) SEBAGAI Hasil;Hasil:
+----------+| Hasil ||----------|| 123.55 |+----------+