Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Lajur dalam Pernyataan SELECT PostgreSQL Semasa Mengendalikan Nilai NULL?

Bagaimana untuk Menggabungkan Lajur dalam Pernyataan SELECT PostgreSQL Semasa Mengendalikan Nilai NULL?

DDD
DDDasal
2025-01-12 07:09:46656semak imbas

How to Concatenate Columns in PostgreSQL SELECT Statements While Handling NULL Values?

Bagaimana untuk menyertai lajur dan mengendalikan nilai NULL dalam pernyataan PostgreSQL SELECT?

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:

  • concat(): Menggabungkan berbilang nilai tanpa menggunakan pemisah.
  • concat_ws(): Gabungkan nilai menggunakan pembatas pilihan, menambah pembatas hanya antara nilai bukan NULL.

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:

    • Operator
    • bukan operator gabungan rentetan yang sah dalam PostgreSQL atau SQL standard. Ia hanya berfungsi dengan produk Microsoft.
  • Adalah disyorkan untuk menggunakan teks atau varchar untuk menyimpan rentetan dan bukannya jenis data aksara(n) atau char(n).

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn