Jika Anda mendapatkan "operator tidak ada:integer || integer” di PostgreSQL, mungkin karena Anda mencoba menggabungkan dua angka.
Jika Anda benar-benar ingin menggabungkan dua angka, cara termudah untuk mengatasi masalah ini adalah dengan mentransmisikan setidaknya salah satunya ke tipe data string terlebih dahulu.
Cara lain untuk melakukannya adalah dengan menggunakan CONCAT()
fungsi.
Contoh Kesalahan
Berikut contoh kode yang menyebabkan kesalahan ini:
SELECT 123 || 456;
Hasil:
ERROR: operator does not exist: integer || integer LINE 1: SELECT 123 || 456; ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
Solusi 1
Berikut cara cepat untuk mengatasi masalah ini:
SELECT CAST(123 AS varchar(3)) || 456;
Hasil:
123456
Meskipun benar bahwa kita bisa memasukkan kedua angka ke string, itu tidak perlu. Selama salah satu operan adalah string, operator penggabungan pipa akan dapat menggabungkannya.
Solusi 2
Cara lain untuk melakukannya adalah dengan menggunakan CONCAT()
fungsi untuk melakukan penggabungan:
SELECT CONCAT(123, 456);
Hasil:
123456
Fungsi ini bekerja pada angka tanpa perlu mengonversinya menjadi string. Fungsi ini secara otomatis melakukan ini (menggabungkan representasi teks dari argumennya secara default).