Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencipta Senarai Nilai Dipisahkan Koma daripada Kumpulan dalam DB2?

Bagaimanakah Saya Boleh Mencipta Senarai Nilai Dipisahkan Koma daripada Kumpulan dalam DB2?

Linda Hamilton
Linda Hamiltonasal
2025-01-09 14:36:40948semak imbas

How Can I Create Comma-Separated Lists of Values from Groups in DB2?

Jana keluaran dipisahkan koma mengikut kumpulan dalam DB2

Fungsi terbina dalam DB2 LISTAGG boleh menggabungkan nilai lajur dengan kumpulan yang sama, dipisahkan dengan koma. Ini berguna apabila anda perlu menggabungkan data dalam kumpulan.

Sebagai contoh, katakan jadual mengandungi dua lajur, ID dan Peranan, dan tiga baris mempunyai ID yang sama tetapi nilai Peranan yang berbeza. Matlamatnya adalah untuk menggabungkan nilai Peranan untuk setiap ID ke dalam senarai yang dipisahkan koma.

Fungsi LISTAGG yang diperkenalkan bermula dengan DB2 LUW 9.7 mencapai ini:

<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') AS Roles
FROM myTable
GROUP BY ID;</code>

Pertanyaan ini akan menjana output yang diingini:

<code>ID   Roles
----------
4555 2,3,4</code>

Perlu diambil perhatian bahawa anda boleh menggunakan klausa WITHIN GROUP dan pernyataan ORDER BY untuk menentukan susunan nilai yang digabungkan. Ini membolehkan kawalan yang lebih besar ke atas susunan nilai yang disenaraikan:

<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles
FROM myTable
GROUP BY ID;</code>

Dalam kes ini, outputnya ialah:

<code>ID   Roles
----------
4555 2,3,4</code>

LISTAGG Menyediakan cara mudah untuk mengagregat dan menggabungkan data dalam DB2, membolehkan operasi rentetan berasaskan kumpulan yang cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Senarai Nilai Dipisahkan Koma daripada Kumpulan dalam DB2?. 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