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

Nối các giá trị dựa trên ID

Bạn không thể chắc chắn về thứ tự của các chuỗi được nối mà không có thứ tự theo câu lệnh trong truy vấn phụ. .value('.', 'varchar(max)') ở đó để xử lý trường hợp Label chứa XML-không thân thiện các ký tự như & .

declare @T table(Response_ID int, Label varchar(50))
insert into @T values
(12147,          'It was not clear'),
(12458,          'Did not Undersstand'),
(12458,          'Was not resolved'),
(12458,          'Did not communicate'),
(12586,          'Spoke too fast'),
(12587,          'Too slow')

select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chọn một số ký tự nhất định từ bên trái hoặc bên phải của chuỗi trong SQL Server

  2. Làm cách nào để tôi nhóm theo cột ngày giờ mà không mất thời gian cân nhắc

  3. Sử dụng FILE_NAME () để trả lại tên tệp logic cho một ID tệp đã cho trong SQL Server

  4. Ràng buộc KIỂM TRA trong SQL Server

  5. Cách EXCEPT hoạt động trong SQL Server