Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

sql 2005 hasil bergabung

Cara blackbox untuk melakukan ini adalah dengan CROSS APPLY dan FOR XML PATH:

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)

Untuk setiap baris, CROSS APPLY mengeksekusi subquery yang diterapkan. Dalam hal ini, subquery dipanggil dua kali, untuk link_id 11 dan 12. Subquery kemudian menyalahgunakan operator FOR XML untuk menambahkan string bersama.

Jika Anda menjalankan kueri, itu akan mencetak:

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. Apa cara berbeda untuk memasukkan data ke dalam Tabel SQL Server - Tutorial SQL Server / TSQL Bagian 100

  2. Tiga Kemenangan Kinerja SQL Server yang Mudah

  3. sql server Sisipkan csv secara massal dengan data yang memiliki koma

  4. Nama tabel yang sepenuhnya memenuhi syarat dengan SP_ExecuteSql untuk mengakses server jarak jauh

  5. Pembaruan SQL, kueri yang sama, hasil yang berbeda setiap kali