sql >> Database >  >> RDS >> Oracle

Queryresultaten retourneren als een door komma's gescheiden lijst in Oracle

In Oracle kunnen we de LISTAGG() . gebruiken functie om onze zoekopdrachtresultaten om te zetten in een door komma's gescheiden lijst.

Dus in plaats van dat elke waarde in een aparte rij wordt uitgevoerd, worden alle waarden in een enkele rij uitgevoerd, gescheiden door een komma (of een ander scheidingsteken naar keuze).

Voorbeeld

Stel je voor dat we de volgende query uitvoeren:

SELECT last_name 
FROM employees
WHERE job_id = 'IT_PROG';

Resultaat:

   LAST_NAME 
____________ 
Hunold       
Ernst        
Austin       
Pataballa    
Lorentz      

Die query leverde vijf rijen op, elk met een andere waarde.

Als we willen dat die waarden op een enkele rij worden uitgevoerd, kunnen we het volgende doen:

SELECT LISTAGG(last_name, ', ')
FROM employees
WHERE job_id = 'IT_PROG';

Resultaat:

                      LISTAGG(LAST_NAME,',') 
____________________________________________ 
Hunold, Ernst, Austin, Pataballa, Lorentz    

Het enige wat we deden was de kolomnaam doorgeven aan de LISTAGG() functie, evenals ons gekozen scheidingsteken.

We kunnen een ander scheidingsteken gebruiken of we kunnen dat argument helemaal weglaten, zodat alle items aaneengeschakeld worden.

De functie accepteert ook een DISTINCT clausule (om dubbele waarden te verwijderen), en een ORDER BY clausule (om de uitvoer van de functie te bestellen).

De functie kan ook heel handig zijn bij het groeperen van queryresultaten.

Zie LISTAGG() Functie in Oracle voor meer voorbeelden.


  1. PlanetScale &Vitess:referentiële integriteit met legacy Sharded-databases

  2. Hoe maak je verbinding met meerdere MySQL-databases op één webpagina?

  3. Gegevens invoegen via een functie met tabelwaarde in SQL Server

  4. Hoe Round() werkt in PostgreSQL