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:
<code class="language-sql">SELECT a || b AS ab FROM foo;</code>
Sebagai alternatif, anda boleh menggunakan fungsi concat_ws() untuk menggabungkan nilai menggunakan pembatas pilihan:
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
Untuk jenis data bukan rentetan, tukar kepada jenis teks sebelum penyatuan, seperti ditunjukkan dalam contoh berikut:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
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!