Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да свържа и направя група от текст в sql сървър?

Ето, опитайте този,

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

Демонстрация на SQLFiddle

Ето още една версия

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

Демонстрация на 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. Външен ключ на SQL Server към множество таблици

  2. Тактика за нормализиране на SQL Server:varchar срещу int идентичност

  3. Грешка:Не може да се извлече ред от OLE DB доставчик ADsDSOObject за свързан сървър ADSI

  4. nvarchar(max) срещу NText

  5. Намерете колони, които съдържат само нули