sql >> Databáze >  >> RDS >> Sqlserver

SQL, otázky týkající se připojení

bohužel neexistuje snadný způsob, jak to udělat v SQL Server. Známá řešení jsou:

  • trik xml (viz níže);
  • používání proměnné ke shromažďování dat (nefunguje pro více řádků skupiny, pouze s kurzorem);
  • vlastní agregát CLR;

zde je 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

ukázka sql houslí

zde je proměnná:

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

ukázka sql houslí



  1. org.hibernate.HibernateException:Databáze nevrátila žádnou nativně generovanou hodnotu identity

  2. Nejlepší skóre MySQL – Osobní hodnocení uživatele:Duplicitní záznamy způsobující nesprávné hodnoty

  3. ActiveModel::MissingAttributeError:nelze zapsat neznámý atribut `user_id`

  4. Zkopírujte uživatelská oprávnění mezi databázemi na stejném serveru