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.