sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořím seznam oddělený čárkami pomocí dotazu SQL?

MySQL

  SELECT r.name,
         GROUP_CONCAT(a.name SEPARATOR ',')
    FROM RESOURCES r
    JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
    JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name

SQL Server (2005+)

SELECT r.name,
       STUFF((SELECT ',' + a.name
               FROM APPLICATIONS a
               JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
              WHERE ar.resource_id = r.id
           GROUP BY a.name
            FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '')
 FROM RESOURCES r

SQL Server (2017+)

  SELECT r.name,
         STRING_AGG(a.name, ',')
    FROM RESOURCES r
    JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
    JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name

Oracle

Doporučuji přečíst si o agregaci/konkatentaci řetězců v Oracle.



  1. Jak opravit „Požadavek COMMIT TRANSACTION nemá odpovídající BEGIN TRANSACTION“ v SQL Server

  2. Napište optimalizace pro Qualcomm Centriq 2400 v MariaDB 10.3.5 Release Candidate

  3. Jak změním výchozí hodnotu sloupce v PostgreSQL?

  4. PostgreSQL 9.1:Jak zřetězit řádky v poli bez duplikátů, PŘIPOJTE SE k jiné tabulce