Soalan:
Anda ingin menggabungkan dua lajur rentetan (a dan b) dalam pernyataan PostgreSQL SELECT. Walau bagaimanapun, penggabungan langsung menggunakan operator || atau ||, ' mengembalikan nilai NULL.
Penyelesaian:
Sambungan jenis rentetan dalam PostgreSQL memerlukan sekurang-kurangnya satu input daripada jenis rentetan. Untuk jenis data bukan rentetan, penukaran eksplisit kepada jenis teks diperlukan untuk penggabungan yang berjaya.
Untuk menyertai lajur jenis rentetan, gunakan sintaks berikut:
SELECT a || b AS ab FROM foo;
Sebagai alternatif, anda boleh menggunakan fungsi concat_ws() untuk menggabungkan nilai menggunakan pembatas pilihan:
SELECT concat_ws(', ', a, b) AS ab FROM foo;
Untuk jenis data bukan rentetan, tukar kepada jenis teks sebelum penyatuan, seperti ditunjukkan dalam contoh berikut:
SELECT a::text || b AS ab FROM foo;
Perbandingan fungsi:
Kemeruapan fungsi kedua-dua concat() dan concat_ws() adalah STABIL, yang bermaksud bahawa keputusannya mungkin berubah bergantung pada data input. Untuk fungsi tidak berubah, pertimbangkan untuk menggunakan teknik seperti pengklonan tidak berubah tersuai atau carian teks penuh.
Nota tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Lajur dalam Pernyataan SELECT PostgreSQL Semasa Mengendalikan Nilai NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!