sql >> Database teknologi >  >> RDS >> Sqlserver

SQL, spørgsmål om joinforbindelse

Desværre er der ingen nem måde at gøre det på i SQL Server. Kendte løsninger er:

  • xml-trick (se nedenfor);
  • brug af variabel til at akkumulere data (virker ikke for flere grupperækker, kun med markør);
  • tilpasset CLR-aggregat;

her er 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 violindemo

her er variabel:

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 violindemo



  1. SQL grupper efter dato, men få også datoer uden registreringer

  2. Indsæt i databaseproblem... (Dårlig tegnkodning) PHP/MYSQL

  3. T-SQL:Hvordan vælger man værdier i værdilisten, der IKKE er i tabellen?

  4. Oracle REGEXP_LIKE og ordgrænser