Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menggabungkan lajur dengan betul dalam Pernyataan SELECT PostgreSQL?

Bagaimana untuk menggabungkan lajur dengan betul dalam Pernyataan SELECT PostgreSQL?

Barbara Streisand
Barbara Streisandasal
2025-01-12 06:16:47377semak imbas

How to Properly Concatenate Columns in PostgreSQL SELECT Statements?

Menyertai lajur dalam pernyataan PostgreSQL SELECT

Apabila menggabungkan rentetan aksara dalam pernyataan PostgreSQL SELECT, anda mungkin menghadapi ralat jika lajur tidak ditukar secara eksplisit kepada teks.

Soalan:

Terdapat dua lajur rentetan a dan b dalam jadual foo. Cuba untuk menyertai mereka menggunakan a || b atau a ||, ' ||.

Penyelesaian:

Untuk menggabungkan rentetan dengan betul dalam Postgres, sekurang-kurangnya satu input mesti ditukar kepada teks. Berikut ialah dua cara untuk melakukannya:

  • Tukar lajur kepada teks:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
  • Gunakan pemisah teks:
<code class="language-sql">SELECT a || ', ' || b AS ab FROM foo;</code>

Nota:

  • Menggunakan operator penggabungan (||) antara jenis data bukan rentetan tidak digunakan lagi.
  • Untuk kes di mana nilai null ​​mungkin terlibat dan hasilnya tidak seharusnya batal, gunakan fungsi concat_ws():
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
  • Sebagai alternatif, anda boleh menggunakan fungsi concat() untuk penggabungan bebas pembatas:
<code class="language-sql">SELECT concat(a, b) AS ab FROM foo;</code>

Nota tambahan:

    • Pengendali
    • bukan operator penggabungan rentetan yang sah dalam Postgres.
  • Menggunakan jenis data aksara(n) untuk menyimpan rentetan biasanya tidak disyorkan. Pertimbangkan untuk menggunakan teks atau varchar sebaliknya.

Atas ialah kandungan terperinci Bagaimana untuk menggabungkan lajur dengan betul dalam Pernyataan SELECT PostgreSQL?. 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