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

SQL, pertanyaan tentang bergabung

sayangnya, tidak ada cara mudah untuk melakukannya di SQL Server. Solusi yang diketahui adalah:

  • trik xml (lihat di bawah);
  • menggunakan variabel untuk mengumpulkan data (tidak bekerja untuk beberapa baris grup, hanya dengan kursor);
  • agregat CLR khusus;

ini xml:

select
    n.name1,
    stuff(
        (
         select ', ' + p.product
         from prod as p
         where p.id_name = n.id
         for xml path(''),  type).value('.', 'nvarchar(max)')
    , 1, 2, '') as products
from name as n

demo biola sql

ini variabelnya:

declare @product nvarchar(max), @id int

select @id = 1

select @product = isnull(@product + ', ', '') + product
from prod
where id_name = @id

select name1, @product as products
from name 
where id = @id

demo biola 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. Perbandingan datetime SQL Server dalam format yang berbeda

  2. Bagaimana cara membuat batasan pemeriksaan beberapa tabel?

  3. Kapan menggunakan Common Table Expression (CTE)

  4. 4 Cara Mengonversi Angka ke Persentase di SQL Server (T-SQL)

  5. Memuat Gambar PictureBox Dari Database