Jika Anda mendapatkan pesan kesalahan Msg 245 yang berbunyi “Konversi gagal saat mengonversi nilai varchar…” saat mencoba melakukan operasi penggabungan di SQL Server, kemungkinan Anda mencoba menggabungkan string dan nomor.
Melakukan hal ini akan menghasilkan kesalahan, karena SQL Server mencoba menambahkan string dan nomor alih-alih menggabungkannya.
Untuk memperbaikinya, ubah angka menjadi string, atau gunakan fungsi seperti CONCAT()
atau CONCAT_WS()
untuk melakukan penggabungan.
Kesalahan
Berikut contoh kode yang menyebabkan kesalahan:
SELECT 'Player ' + 456;
Hasil:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Player ' to data type int.
SQL Server berpikir bahwa kami mencoba menambahkan dua operan, sehingga mengalami masalah saat mencoba menambahkan string dan nomor.
Solusi 1
Salah satu cara untuk memecahkan masalah ini adalah secara eksplisit mengonversi angka menjadi string:
SELECT 'Player ' + CAST(456 AS varchar(3));
Hasil:
Player 456
Hal ini menyebabkan SQL Server memahami bahwa kami mencoba menggabungkan operan alih-alih menambahkannya.
Solusi 2
Cara lain untuk melakukannya adalah dengan menggunakan fungsi seperti CONCAT()
untuk melakukan penggabungan:
SELECT CONCAT('Player ', 456);
Hasil:
Player 456
CONCAT()
adalah fungsi string, sehingga SQL Server sekarang mengerti bahwa kita ingin menggabungkan dua string daripada menambahkan dua angka.
Atau, kita bisa menggunakan CONCAT_WS()
fungsi, yang memungkinkan kita untuk menentukan pemisah yang akan digunakan di antara argumen yang digabungkan.