Walau bagaimanapun, PostgreSQL tidak menyokong fungsi group_concat() secara asli tidak seperti MySQL. Oleh itu, tutorial ini meneroka bagaimana kita boleh mencapai fungsi yang serupa menggunakan fungsi string_agg().
Fungsi String_Agg PostgreSQL
Fungsi string_agg dalam PostgreSQL membolehkan kami menggabungkan nilai daripada berbilang baris ke dalam satu rentetan dan dipisahkan oleh parameter yang ditentukan.
Penggunaan sintaks fungsi adalah seperti yang ditunjukkan seperti berikut:
SELECT string_agg(column_name, delimiter)
DARI table_name
WHERE syarat
KUMPULAN MENGIKUT kumpulan_lajur;
Sintaks berikut adalah seperti yang dinyatakan seperti berikut:
nama_lajur – Ia menentukan nama lajur yang lajurnya ingin kami gabungkan.
pembatas – Ia mentakrifkan aksara pemisah yang digunakan apabila menyertai nilai input.
nama_jadual – Jadual sasaran yang mengandungi data.
kumpulan_lajur – Ia menentukan lajur yang digunakan untuk mengumpulkan data yang ditentukan.
Contoh Fungsi String_Agg PostgreSQL
Mari kita ambil contoh yang lebih praktikal untuk menggambarkan bagaimana fungsi itu berfungsi. Katakan kita mempunyai jadual yang mengandungi maklumat pelajar. Jadual mengandungi tiga lajur: id, nama dan subjek.
Jika kita ingin menggabungkan nama pelajar yang mendaftar dalam subjek yang sama, kita boleh menggunakan fungsi string_agg.
PILIH subjek, string_agg ( nama, ',' ) SEBAGAI pelajarDARIPADA pelajar
KUMPULAN MENGIKUT subjek;
Sebaik sahaja kami menjalankan pertanyaan yang diberikan, ia harus mengembalikan set hasil dengan dua lajur utama: subjek dan pelajar. Pelajar mengandungi nama pelajar yang digabungkan untuk setiap mata pelajaran dan dipisahkan dengan koma.
CATATAN : Fungsi string_agg mengisih nilai yang digabungkan secara lalai. Anda boleh menambah klausa ORDER BY di dalam fungsi string_agg untuk mengekalkan susunan asal.
Itulah anda mempunyainya! Kaedah yang mudah dan cekap untuk mencapai kefungsian serupa yang disediakan oleh fungsi group_concat() dalam PostgreSQL.
Kesimpulan
Dalam tutorial ringkas tetapi berkesan ini, kami mempelajari cara menggunakan fungsi string_agg dalam PostgreSQL untuk mencapai fungsi serupa yang disediakan oleh fungsi group_concat() dalam MySQL.