Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Nama Pertama Pengulas ke dalam Rentetan Dipisahkan Koma Tunggal dalam T-SQL?
Gabungan berbilang medan rekod dalam T-SQL
Dalam T-SQL, selalunya perlu untuk mengumpulkan medan berbilang rekod berdasarkan medan lain. Pertimbangkan senario berikut:
Anda mempunyai tiga jadual: Ulasan, Pengulas dan Pengguna. Jadual Ulasan mengandungi ID Semakan dan Tarikh Semakan. Jadual Reviewers mengandungi ReviewerID, ReviewID dan UserID. Akhir sekali, jadual Pengguna mengandungi ID Pengguna, FName dan LName.
Cabaran:
Anda ingin memaparkan senarai ulasan, setiap satu mengandungi tarikh semakan yang sepadan dan senarai nama semua pengulas yang dipisahkan koma yang dikaitkan dengan ulasan itu. Output yang dikehendaki kelihatan seperti ini:
<code>ReviewID---ReviewDate----Users ---------------------------- 1----------12/1/2009-----Bob, Joe, Frank 2----------12/9/2009-----Sue, Alice</code>
bukannya:
<code>ReviewID---ReviewDate---User ---------------------------- 1----------12/1/2009----Bob 1----------12/1/2009----Joe 1----------12/1/2009----Frank 2----------12/9/2009----Sue 2----------12/9/2009----Alice</code>
Penyelesaian:
Salah satu cara untuk menyelesaikan masalah ini ialah menggunakan kaedah FOR XML PATH(''):
<code class="language-sql">SELECT *, ( SELECT u.FName + ',' FROM @Users u INNER JOIN @Reviewers rs ON u.UserID = rs.UserID WHERE rs.ReviewID = r.ReviewID FOR XML PATH('') ) AS Users FROM @Reviews r</code>
Berikut ialah pecahan pertanyaan:
Baris 1: Pilih lajur yang diperlukan daripada jadual Ulasan: ID Semakan dan Tarikh Semakan.
Baris 4-9: Gunakan subkueri untuk mendapatkan semula senarai nama yang dipisahkan koma untuk setiap ulasan.
Baris 10: Hasil daripada subkueri dialiaskan sebagai Pengguna.
Output yang disemak ini menjelaskan alias dan meningkatkan kebolehbacaan Fungsi teras kekal sama, dengan cekap menggabungkan nama pertama pengulas menjadi rentetan yang dipisahkan koma.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Nama Pertama Pengulas ke dalam Rentetan Dipisahkan Koma Tunggal dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!