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

Jak mogę połączyć i utworzyć grupę tekstu na serwerze sql?

Tutaj wypróbuj ten,

SELECT  a.dept_id, 
        NewTable.NameValues
FROM    (
          SELECT DISTINCT dept_ID
          FROM tableA
        ) a 
        LEFT JOIN
        (
          SELECT  dept_id,
                STUFF((
                  SELECT  ', ' + [Name] 
                  FROM    tableA
                  WHERE   ( dept_id = Results.dept_id )
                  FOR XML PATH('')), 1, 1, '') AS NameValues
          FROM    tableA Results
          GROUP BY dept_id
        ) NewTable
        on a.dept_id = NewTable.dept_id
GO

Pokaz SQLFiddle

Oto kolejna wersja

SELECT  a.dept_id, 
        SUBSTRING(d.nameList,1, LEN(d.nameList) - 1) ConcatenateNames
FROM 
        (
            SELECT DISTINCT dept_id
            FROM   tableA
        ) a
        CROSS APPLY
        (
            SELECT name + ', ' 
            FROM tableA AS B 
            WHERE A.dept_id = B.dept_id 
            FOR XML PATH('')
        ) D (nameList)
GO

Pokaz SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Potrzebuję listy krajów w T-SQL

  2. ZAMÓW WEDŁUG DATY wyświetlając najpierw NULL, a następnie najnowsze daty

  3. Jak programowo ustawić parametry połączenia dla Entity-Framework Code-First?

  4. Jak wstawić do zmiennej tabeli z dynamicznym zapytaniem?

  5. Zapytanie SQL - Usunąć duplikaty, jeśli więcej niż 3 duplikaty?