Page 88 - SQL
P. 88

SQL Server 2016 and earlier



        (CTE included to encourage the DRY principle)


           WITH CTE_TableName AS (
                SELECT ColumnA, ColumnB
                  FROM TableName)
         SELECT t0.ColumnA
              , STUFF((
                SELECT ',' + t1.ColumnB
                  FROM CTE_TableName t1
                 WHERE t1.ColumnA = t0.ColumnA
                 ORDER BY t1.ColumnB
                   FOR XML PATH('')), 1, 1, '') AS ColumnBs
           FROM CTE_TableName t0
          GROUP BY t0.ColumnA
          ORDER BY ColumnA;


        SQL Server 2017 and SQL Azure



         SELECT ColumnA
              , STRING_AGG(ColumnB, ',') WITHIN GROUP (ORDER BY ColumnB) AS ColumnBs
           FROM TableName
          GROUP BY ColumnA
          ORDER BY ColumnA;



        SQLite




        without ordering:


         SELECT ColumnA
              , GROUP_CONCAT(ColumnB, ',') AS ColumnBs
           FROM TableName
          GROUP BY ColumnA
          ORDER BY ColumnA;


        ordering requires a subquery or CTE:


           WITH CTE_TableName AS (
                SELECT ColumnA, ColumnB
                  FROM TableName
                 ORDER BY ColumnA, ColumnB)
         SELECT ColumnA
              , GROUP_CONCAT(ColumnB, ',') AS ColumnBs
           FROM CTE_TableName
          GROUP BY ColumnA
          ORDER BY ColumnA;


        Count






        https://riptutorial.com/                                                                               70
   83   84   85   86   87   88   89   90   91   92   93