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

sql 2005 tham gia kết quả

Cách hộp đen để thực hiện việc này là với ÁP DỤNG CHÉO và ĐƯỜNG LẮP XML:

declare @t table (id int, link_id int, name varchar(max))
insert into @t select 1, 11, 'test1'
union all select 2, 11, 'test2'
union all select 3, 11, 'test3'
union all select 4, 12, 'test4'

select b.link_id, d.link_names
from (
    select distinct link_id
    from @t a
) b
cross apply (
    select name + ', ' as [text()]
    from @t c
    where b.link_id = c.link_id
    for xml path('')
) d (link_names)

Đối với mỗi hàng, ÁP DỤNG CHÉO thực hiện truy vấn con được áp dụng. Trong trường hợp này, truy vấn con được gọi hai lần, cho link_id 11 và 12. Sau đó truy vấn con lạm dụng toán tử FOR XML để thêm các chuỗi lại với nhau.

Nếu bạn chạy truy vấn, nó sẽ in ra:

11   test1, test2, test3, 
12   test4, 


  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ó công cụ so sánh SQL Server DB mã nguồn mở không?

  2. Cập nhật máy chủ SQL với tham gia bên trong

  3. Truy vấn phân trang cho mssql server 2008 Ném cú pháp không chính xác gần 'OFFSET'

  4. Làm cách nào để CẬP NHẬT từ một CHỌN trong SQL Server?

  5. Làm cách nào để sử dụng câu lệnh if sau CTE (SQL Server 2005)