Heim >Datenbank >MySQL-Tutorial >Wie kann ich durch Kommas getrennte Listen mithilfe von SQL-Abfragen generieren?

Wie kann ich durch Kommas getrennte Listen mithilfe von SQL-Abfragen generieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-18 22:18:11519Durchsuche

How Can I Generate Comma-Separated Lists Using SQL Queries?

Verwenden Sie eine SQL-Abfrage, um eine durch Kommas getrennte Liste zu generieren

Bei Datenbankoperationen ist es häufig erforderlich, eine durch Kommas getrennte Liste von Werten zu erstellen. Beispielsweise möchten Sie möglicherweise eine Liste aller Anwendungen anzeigen, die einer bestimmten Ressource auf der Benutzeroberfläche zugeordnet sind. Es ist zwar möglich, jede Ressource zu durchlaufen, die Anwendung abzurufen und sie selbst zu verbinden, dieser Ansatz ist jedoch ineffizient und zeitaufwändig.

Glücklicherweise bieten die meisten SQL-Datenbanken integrierte String-Verkettungs- und Aggregationsfunktionen. Im Folgenden sind die Implementierungsmethoden mehrerer häufig verwendeter SQL-Dialekte aufgeführt:

MySQL

<code class="language-sql">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</code>

SQL Server (2005)

<code class="language-sql">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</code>

SQL Server (2017)

<code class="language-sql">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</code>

Orakel

Oracle bietet eine Vielzahl von Optionen für die Verkettung und Aggregation von Zeichenfolgen. Bitte machen Sie sich mit der spezifischen Syntax der von Ihnen verwendeten Version vertraut.

Diese Abfragen generieren effektiv eine durch Kommas getrennte Liste von Anwendungen für jede Ressource, sodass Sie mit einer einzigen Abfrage die erforderlichen Informationen für Ihre GUI bereitstellen können.

Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Listen mithilfe von SQL-Abfragen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn