Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membuat Senarai Nama Pekerja yang Dibataskan Koma dalam SQL Server?

Bagaimana untuk Membuat Senarai Nama Pekerja yang Dibataskan Koma dalam SQL Server?

DDD
DDDasal
2025-01-18 10:17:09137semak imbas

How to Create a Comma-Delimited List of Employee Names in SQL Server?

Pertanyaan untuk mencipta senarai dipisahkan koma dalam SQL Server

Pertanyaan yang anda berikan direka bentuk untuk membuat senarai nama pekerja yang dipisahkan koma daripada jadual. Walau bagaimanapun, kerumitan pertanyaan mungkin mengelirukan anda. Mari kita pecahkan langkah demi langkah.

Langkah 1: Gabungkan subkueri nama pekerja

Subkueri:

<code class="language-sql">SELECT E2.ename AS 'data()' 
FROM emp AS e2 
WHERE e1.deptno = e2.DEPTNO 
FOR xml PATH('')</code>

Kembalikan nama pekerja yang disambungkan sebagai XML. Alias ​​"data()" digunakan untuk memaksa ralat, yang kemudiannya disembunyikan oleh klausa FOR XML PATH(''). Ini akan menghasilkan XML tanpa sebarang teg.

Langkah 2: Alih keluar ruang

Fungsi

Replace() digunakan untuk menggantikan ruang dalam rentetan XML dengan koma:

<code class="language-sql">allemp = Replace ((SELECT E2.ename AS 'data()' 
                       FROM emp AS e2 
                       WHERE e1.deptno = e2.DEPTNO 
                       FOR xml PATH('')), ' ', ', ') </code>

Langkah 3: Pengumpulan dan Output

Gunakan GROUP BY DEPTNO untuk mengumpulkan pertanyaan mengikut nombor jabatan. Kemudian, paparkan output sebagai senarai nama pekerja yang dipisahkan koma untuk setiap jabatan.

Pertanyaan alternatif

Pertanyaan berikut juga boleh digunakan untuk mencapai hasil yang sama, dengan beberapa penambahbaikan:

<code class="language-sql">SELECT  E1.deptno, 
        STUFF(( SELECT  ', ' + E2.ename 
                FROM    emp AS e2 
                WHERE   e1.deptno = e2.DEPTNO 
                FOR XML PATH('')
            ), 1, 2, '') 
FROM    EMP AS e1 
GROUP BY DEPTNO; </code>

Pertanyaan ini menggunakan fungsi STUFF() untuk mengalih keluar koma dan ruang pertama. Ia juga meninggalkan alias dalam subquery untuk mengelakkan membuat teg XML.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Senarai Nama Pekerja yang Dibataskan Koma dalam SQL Server?. 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