sql >> Database >  >> RDS >> Sqlserver

Hoe maak ik een door komma's gescheiden lijst met behulp van een SQL-query?

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

Ik raad aan om te lezen over het samenvoegen/aaneenschakelen van strings in Oracle.



  1. Fix Error:"SELECT's links en rechts van UNION hebben niet hetzelfde aantal resultaatkolommen" in SQLite

  2. Snapshots van SQL Server-database -2

  3. MySQL – Fix – Error – Uw wachtwoord voldoet niet aan de huidige beleidsvereisten

  4. MySQL INSERT IF (aangepaste if-statements)