sql >> Databasteknik >  >> RDS >> Sqlserver

SQL välj flera rader i en kolumn

AFAIK, det finns inget inhemskt sätt att göra det. Du kan dock använda FOR XML att göra så här:

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;

SQL Fiddle Demo

Detta ger dig:

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


  1. php mysql Group By för att få senaste posten, inte första posten

  2. Hur man granskar en PostgreSQL-databas

  3. Jämför rader i samma tabell i mysql

  4. Varför är inte säkerhet på radnivå aktiverad för Postgres-vyer?