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

Tôi có thể phân cách bằng dấu phẩy nhiều hàng thành một cột không?

Đây là một giải pháp hoạt động trong SQL Server 2005+:

SELECT t.TicketID,
       STUFF(ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') [No Preceeding Comma],
       ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), '') [Preceeding Comma If Not Empty]
  FROM @Tickets t
GROUP BY t.TicketID

Tham khảo:

  • STUFF (Transact-SQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi không có 'Thứ tự theo' được chỉ định, truy vấn sẽ chọn thứ tự nào cho tập hợp bản ghi của bạn?

  2. Cách tìm số nhận dạng duy nhất tối ưu trong bảng trong SQL Server:sp_special_columns

  3. Nhóm máy chủ SQL theo số ngày tháng mỗi giờ?

  4. Một số tin tức tuyệt vời cho khách hàng Standard Edition trong SQL Server 2014

  5. Tìm một giá trị ở bất kỳ đâu trong cơ sở dữ liệu