sql >> Database >  >> RDS >> Sqlserver

SQL, vragen over join

helaas is er geen gemakkelijke manier om dit in SQL Server te doen. Bekende oplossingen zijn:

  • xml-truc (zie hieronder);
  • variabele gebruiken om gegevens te verzamelen (werkt niet voor meerdere groepsrijen, alleen met cursor);
  • aangepast CLR-aggregaat;

hier is 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

sql fiddle-demo

hier is een variabele:

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

sql fiddle-demo



  1. Slaapstand> CLOB> Oracle :(

  2. Hex-waarde invoegen in MySQL

  3. Uw database exporteren voor overdracht

  4. SQLite TOON TABELLEN Equivalent