sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg sammenkæde og lave en gruppe tekst i sql server?

Her, prøv denne,

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 Demo

HER er en anden version

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 Demo



  1. Optimering af min mysql-forespørgsel til at bruge indeks til sortering

  2. Hvordan returnerer man ResultSet fra Stored Procedure i Oracle?

  3. Boolean vs tinyint(1) for booleske værdier i MySQL

  4. Hvordan opfylder jeg enforce_srid_coordinate-begrænsningen med GeoDjango/PostGIS?