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

Kết hợp nhiều kết quả trong một truy vấn con thành một giá trị được phân tách bằng dấu phẩy

Ngay cả điều này cũng sẽ phục vụ mục đích

Dữ liệu mẫu

declare @t table(id int, name varchar(20),somecolumn varchar(MAX))
insert into @t
    select 1,'ABC','X' union all
    select 1,'ABC','Y' union all
    select 1,'ABC','Z' union all
    select 2,'MNO','R' union all
    select 2,'MNO','S'

Truy vấn:

SELECT ID,Name,
    STUFF((SELECT ',' + CAST(T2.SomeColumn AS VARCHAR(MAX))
     FROM @T T2 WHERE T1.id = T2.id AND T1.name = T2.name
     FOR XML PATH('')),1,1,'') SOMECOLUMN
FROM @T T1
GROUP BY id,Name

Đầu ra:

ID  Name    SomeColumn
1   ABC     X,Y,Z
2   MNO     R,S


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hoạt động không được phép khi đối tượng bị đóng khi chạy truy vấn nâng cao hơn

  2. Chuyển đổi ‘datetime’ thành ‘date’ trong SQL Server (Ví dụ T-SQL)

  3. Lấy và cài đặt Microsoft SQL Server Management Studio

  4. Quản lý chỉ mục của SQL Server bằng Trình quản lý chỉ mục dành cho SQL Server

  5. Cách thêm Ràng buộc khóa ngoại vào bảng hiện có trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 68