Data kumpulan SQL DB2 menjana nilai dipisahkan koma
Soalan: Adakah terdapat fungsi dalam DB2 SQL yang boleh menjana secara langsung nilai diasingkan koma data lajur terkumpul?
Senario: Kami mempunyai jadual dengan lajur ID dan lajur Peranan. Mungkin terdapat berbilang baris untuk ID yang sama, dengan setiap baris mewakili peranan yang berbeza untuk ID tersebut. Matlamatnya adalah untuk menggabungkan peranan ini menjadi rentetan yang dipisahkan koma untuk setiap ID unik.
Contoh:
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
Keluaran yang dijangkakan:
<code>4555 2,3,4</code>
Jawapan:
DB2 LUW 9.7 memperkenalkan fungsi baharu LITAGG yang menyelesaikan masalah ini.
Tatabahasa:
<code>LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY expression ASC|DESC)</code>
Arahan:
Penggunaan:
Untuk mendapatkan semula nilai peranan yang dipisahkan koma untuk setiap ID unik, anda boleh menggunakan pertanyaan berikut:
<code>SELECT id, LISTAGG(role, ', ') WITHIN GROUP (ORDER BY role ASC) AS roles FROM myTable GROUP BY id;</code>
Output:
<code>ID | roles ------------ 4555 | 2,3,4</code>
Nota tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nilai Dipisahkan Koma daripada Data Berkumpulan dalam DB2 SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!