sql >> Databasteknik >  >> RDS >> Sqlserver

SQL, frågor om join

Tyvärr finns det inget enkelt sätt att göra det i SQL Server. Kända lösningar är:

  • xml-trick (se nedan);
  • använda variabel för att samla data (fungerar inte för flera grupprader, bara med markören);
  • anpassat CLR-aggregat;

här är 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 fioldemo

här är variabeln:

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 fioldemo



  1. Returnera värde från sql-skript till skalskript

  2. hur man får värden för samma kolumnnamn från två olika tabeller i SQL

  3. mysql - Uppdatera automatiskt förekomster i en annan tabell

  4. Välj endast unika värden från en kolumn i codeigniter