Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để nối và tạo một nhóm văn bản trong máy chủ sql?

Đây, hãy thử cái này,

SELECT  a.dept_id, 
        NewTable.NameValues
FROM    (
          SELECT DISTINCT dept_ID
          FROM tableA
        ) a 
        LEFT JOIN
        (
          SELECT  dept_id,
                STUFF((
                  SELECT  ', ' + [Name] 
                  FROM    tableA
                  WHERE   ( dept_id = Results.dept_id )
                  FOR XML PATH('')), 1, 1, '') AS NameValues
          FROM    tableA Results
          GROUP BY dept_id
        ) NewTable
        on a.dept_id = NewTable.dept_id
GO

SQLFiddle Demo

HEre là một phiên bản khác

SELECT  a.dept_id, 
        SUBSTRING(d.nameList,1, LEN(d.nameList) - 1) ConcatenateNames
FROM 
        (
            SELECT DISTINCT dept_id
            FROM   tableA
        ) a
        CROSS APPLY
        (
            SELECT name + ', ' 
            FROM tableA AS B 
            WHERE A.dept_id = B.dept_id 
            FOR XML PATH('')
        ) D (nameList)
GO

SQLFiddle Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa tài khoản thư cơ sở dữ liệu (SSMS)

  2. Cách thêm cột nhận dạng vào bảng bằng TSQL và GUI trong SQL Server - Hướng dẫn SQL Server / T-SQL Phần 40

  3. Làm thế nào chúng ta có thể sử dụng ISNULL cho tất cả các tên cột trong SQL Server 2008?

  4. Tại sao điều chỉnh hiệu suất SQL là kỹ năng quản lý cơ sở dữ liệu quan trọng nhất cần có

  5. SQL Server:Cách chọn tất cả các ngày trong một phạm vi ngày ngay cả khi không có dữ liệu nào tồn tại trong một số ngày