Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL wybierz wiele wierszy w jednej kolumnie

AFAIK, nie ma na to natywnego sposobu. Możesz jednak użyć FOR XML zrobić to w ten sposób:

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;

Pokaz SQL Fiddle

To da ci:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć końcowe liczby z ciągu?

  2. Znajdź rekordy z 3 lub więcej kolejnymi rekordami o tej samej wartości

  3. Jak znaleźć najwolniejsze zapytania

  4. nvarchar konkatenacja / index / nvarchar(max) niewytłumaczalne zachowanie

  5. DateTimeOffset. Now w T-SQL