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

SQL chọn nhiều hàng trong một cột

AFAIK, không có cách bản địa nào để làm như vậy. Tuy nhiên, bạn có thể sử dụng FOR XML để làm điều này như vậy:

SELECT 
  t1.Id,
  STUFF((
    SELECT ', ' + t2.name  
    FROM Table1 t2
    WHERE t2.ID = t1.ID
    FOR XML PATH (''))
  ,1,2,'') AS Names
FROM Table1 t1
GROUP BY t1.Id;

Bản trình diễn SQL Fiddle

Điều này sẽ cung cấp cho bạn:

| ID |   NAMES |
----------------
|  1 | A, B, C |
|  2 |    D, E |
|  3 |       F |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để loại bỏ các hàng trùng lặp?

  2. NOLOCK so với Mức cách ly giao dịch

  3. PDO DBLIB truy cập SQL Server 2008 và 2012

  4. Cập nhật giá trị khóa chính bằng khung thực thể

  5. Cách thêm nhóm tệp vào cơ sở dữ liệu máy chủ SQL (T-SQL)