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

SQL vybere více řádků v jednom sloupci

AFAIK, neexistuje žádný nativní způsob, jak to udělat. Můžete však použít FOR XML udělat to takto:

SELECT 
  t1.Id,
  STUFF((
    SELECT ', ' + t2.name  
    FROM Table1 t2
    WHERE t2.ID = t1.ID
    FOR XML PATH (''))
  ,1,2,'') AS Names
FROM Table1 t1
GROUP BY t1.Id;

Ukázka SQL Fiddle

Tím získáte:

| ID |   NAMES |
----------------
|  1 | A, B, C |
|  2 |    D, E |
|  3 |       F |


  1. Jak vytvořím vnořenou funkci v PL/pgSQL?

  2. ekvivalent timestampdiff v JPQL (bez použití kritérií)

  3. proč tento sql použil union all nevrátil žádná data

  4. Dotaz MySQL s polem časového razítka UNIX