首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中建立以逗號分隔的員工姓名清單?

如何在 SQL Server 中建立以逗號分隔的員工姓名清單?

DDD
發布: 2025-01-18 10:17:09
原創
136 人瀏覽過

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

SQL Server中建立逗號分隔清單的查詢

您提供的查詢旨在從表中建立員工姓名的逗號分隔清單。但是,查詢的複雜性可能會讓您感到困惑。讓我們逐步分解它。

步驟1:組合員工姓名的子查詢

子查詢:

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

將連接的員工姓名作為XML回傳。 「data()」別名用於強制出錯,然後由FOR XML PATH('')子句隱藏。這將導致沒有任何標籤的XML。

步驟2:去除空格

Replace()函數用於將XML字串中的空格替換為逗號:

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

步驟3:分組與輸出

使用GROUP BY DEPTNO以部門編號將查詢分組。然後,將輸出顯示為每個部門的員工姓名逗號分隔清單。

替代查詢

以下查詢也可以用來實現相同的結果,並進行了一些改進:

<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>
登入後複製

此查詢使用STUFF()函數刪除第一個逗號和空格。它還在子查詢中省略了別名,以避免建立XML標籤。

以上是如何在 SQL Server 中建立以逗號分隔的員工姓名清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板