Dalam PostgreSQL, tugas untuk menggabungkan dua lajur sedia ada menjadi lajur baharu kerap timbul. Walaupun fungsi concat() yang biasa adalah pendekatan biasa, mari kita terokai alternatif lain dan apabila ia cemerlang.
Jika anda pasti bahawa lajur anda tidak akan mengandungi nilai nol, pengendali gabungan tradisional || kekal sebagai pilihan yang paling berkesan. Hanya tulis:
SELECT col_a || col_b;
Walau bagaimanapun, apabila nilai nol adalah kemungkinan, concat() bersinar. Tidak seperti ||, concat() menjamin hasil bukan nol, walaupun semua hujahnya adalah batal. Sintaksnya:
SELECT concat(col_a, col_b);
Jika nilai nol boleh mengganggu output yang anda inginkan, pertimbangkan untuk menggunakan COALESCE dalam kombinasi dengan || :
SELECT COALESCE(col_a, '') || COALESCE(col_b, '');
Pendekatan ini memastikan bahawa hasilnya adalah satu rentetan kosong jika mana-mana lajur adalah nol.
Apabila berurusan dengan berbilang lajur nol atau ungkapan kompleks, concat() terbukti amat berguna . Contohnya:
SELECT CASE WHEN (col_a, col_b) IS NULL THEN NULL ELSE concat(col_a, col_b) END;
Untuk situasi di mana anda perlu memasukkan pemisah antara elemen yang digabungkan, concat_ws() menawarkan kemudahan pilihan:
SELECT concat_ws(' - ', col_a, col_b, col_c);
Perhatikan bahawa walaupun concat() dan concat_ws() secara amnya adalah fungsi yang stabil, ia berpotensi mencetuskan fungsi output jenis data yang bergantung pada tetapan setempat. Ini boleh menjejaskan penggunaan langsung mereka dalam ungkapan indeks.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Lajur dengan Cekap dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!