sql >> Databáze >  >> RDS >> Oracle

Vraťte výsledky dotazu jako seznam oddělený čárkami v Oracle

V Oracle můžeme použít LISTAGG() funkci převést naše výsledky dotazu na seznam oddělený čárkami.

Namísto toho, aby byla každá hodnota uvedena na samostatném řádku, jsou všechny hodnoty vypsány na jednom řádku odděleném čárkou (nebo jiným oddělovačem dle našeho výběru).

Příklad

Představte si, že spustíme následující dotaz:

SELECT last_name 
FROM employees
WHERE job_id = 'IT_PROG';

Výsledek:

   LAST_NAME 
____________ 
Hunold       
Ernst        
Austin       
Pataballa    
Lorentz      

Tento dotaz vrátil pět řádků, každý s jinou hodnotou.

Pokud chceme, aby se tyto hodnoty zobrazovaly na jednom řádku, můžeme provést následující:

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

Výsledek:

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

Vše, co jsme udělali, bylo předat název sloupce do LISTAGG() funkce, stejně jako námi zvolený oddělovač.

Můžeme použít jiný oddělovač nebo můžeme tento argument úplně vynechat, aby byly všechny položky zřetězeny.

Funkce také přijímá DISTINCT klauzule (k odstranění duplicitních hodnot) a ORDER BY klauzule (pro objednání výstupu funkce).

Funkce může být také docela užitečná při seskupování výsledků dotazů.

Viz LISTAGG() Další příklady najdete v aplikaci Oracle.


  1. Drop vs. Truncate v SQL

  2. Funkce SUM() v MariaDB

  3. 4 způsoby, jak zjistit, jaké sloupce budou vráceny uloženou procedurou na serveru SQL

  4. Syntaxe SQL ALTER TABLE – Zobrazuje DBMS