Cara menggunakan mysql concat_ws null

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.

Show

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:

select concat(venuecity, venuestate)
from venue
where venueseats > 75000
order by venueseats;

concat
-------------------
DenverCO
Kansas CityMO
East RutherfordNJ
LandoverMD
(4 rows)

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
-------------------
616263646566

Misal kita buat tabel berikut

CREATE TABLE concatenull (
id int auto_increment not null,
text1 varchar(50) null,
text2 varchar(50) null,
primary key (id)
);

Lalu kita tambah data berikut :

INSERT INTO concatenull (text1, text2) VALUES('kerai', 'putih');
INSERT INTO concatenull (text1, text2) VALUES('jubah', null);

Berarti akan ada data berikut :

+----+-------+-------+
| id | text1 | text2 |
+----+-------+-------+
|  1 | kerai | putih |
|  2 | jubah | NULL  |
+----+-------+-------+

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.