Fungsi CONCAT menggabungkan dua ekspresi dan mengembalikan ekspresi yang dihasilkan. Untuk menggabungkan lebih dari dua ekspresi, gunakan fungsi CONCAT bersarang. Operator rangkaian (||) antara dua ekspresi menghasilkan hasil yang sama dengan fungsi CONCAT.
Untuk kedua fungsi CONCAT dan operator penggabungan, jika salah satu atau kedua ekspresi adalah null, hasil penggabungan adalah null.
Sintaksis
CONCAT ( expression1, expression2 )Pendapat
ungkapan1,ungkapan2
Kedua argumen dapat berupa string karakter tetap-panjang, string karakter variabel-panjang, ekspresi biner, atau ekspresi yang mengevaluasi ke salah satu input ini.
Jenis pengembalian
CONCAT mengembalikan ekspresi. Tipe data dari ekspresi adalah jenis yang sama dengan argumen input.
Jika ekspresi masukan memiliki jenis yang berbeda, Amazon Redshift mencoba mengetik secara implisit salah satu ekspresi. Jika nilai tidak dapat dilemparkan, kesalahan dikembalikan.
Contoh
Contoh berikut menggabungkan dua literal karakter:
select concat('December 25, ', '2008'); concat ------------------- December 25, 2008 (1 row)Query berikut, menggunakan||operator bukan CONCAT, menghasilkan hasil yang sama:
select 'December 25, '||'2008'; ?column? ------------------- December 25, 2008 (1 row)Contoh berikut menggunakan dua fungsi CONCAT untuk menggabungkan tiga string karakter:
select concat('Thursday, ', concat('December 25, ', '2008')); concat ----------------------------- Thursday, December 25, 2008 (1 row)Untuk menggabungkan kolom yang mungkin berisi nulls, gunakanEkspresi NVL. Contoh berikut menggunakan NVL untuk mengembalikan 0 setiap kali NULL ditemui.
select concat(venuename, concat(' seats ', nvl(venueseats, 0))) as seating from venue where venuestate = 'NV' or venuestate = 'NC' order by 1 limit 5; seating ----------------------------------- Ballys Hotel seats 0 Bank of America Stadium seats 73298 Bellagio Hotel seats 0 Caesars Palace seats 0 Harrahs Hotel seats 0 (5 rows)Query berikut menggabungkan CITY dan NEGARA nilai-nilai dari tabel VENUE:
Query berikut menggunakan fungsi CONCAT bersarang. Query menggabungkan CITY dan NEGARA nilai-nilai dari tabel VENUE tetapi membatasi string yang dihasilkan dengan koma dan spasi:
select concat(concat(venuecity,', '),venuestate) from venue where venueseats > 75000 order by venueseats; concat --------------------- Denver, CO Kansas City, MO East Rutherford, NJ Landover, MD (4 rows)Contoh berikut menggabungkan dua ekspresi biner. Di manaabcadalah nilai biner (dengan representasi heksadesimal616263) dandefadalah nilai biner (dengan representasi heksadesimal dari646566). Hasilnya secara otomatis ditampilkan sebagai representasi heksadesimal dari nilai biner.
select concat('abc'::varbyte, 'def'::varbyte); concat ------------------- 616263646566Misal kita buat tabel berikut Lalu kita tambah data berikut : Berarti akan ada data berikut :
Untuk kasus tertentu, kita perlu menggabungkan (concatenate) kolom text1 dan text2 sehingga akan menjadi “kerai putih” dan “jubah”.
Hal seperti ini di mysql rupanya tidak bisa dilakukan dengan menggunakan fungsi concat karena ada kolom yang bernilai NULL.
SELECT id, text1, text2, CONCAT(text1, text2) AS con FROM concatenull; +----+-------+-------+------------+ | id | text1 | text2 | con | +----+-------+-------+------------+ | 1 | kerai | putih | keraiputih | | 2 | jubah | NULL | NULL | +----+-------+-------+------------+ 2 rows in set (0.00 sec)Alternatifnya, bisa menggunakan fungsi concat_ws
SELECT id, text1, text2, CONCAT_WS('', text1, text2) AS con FROM concatenull; +----+-------+-------+------------+ | id | text1 | text2 | con | +----+-------+-------+------------+ | 1 | kerai | putih | keraiputih | | 2 | jubah | NULL | jubah | +----+-------+-------+------------+ 2 rows in set (0.00 sec)Nah, sekian.