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

Ekvivalent Oracle GROUP_CONCAT().

Některé RDBMS mají GROUP_CONCAT() funkce, která umožňuje vrátit sloupec dotazu jako seznam s oddělovači (například seznam oddělený čárkami). MySQL a MariaDB jsou dvě, které takovou funkci mají.

PostgreSQL a SQL Server mají podobné funkce zvané STRING_AGG() .

Oracle má na druhé straně LISTAGG() funkce, která dělá v podstatě to samé (a možná i víc).

Dalo by se tedy říci, že LISTAGG() je GROUP_CONCAT() společnosti Oracle ekvivalentní.

Příklad

Zde je základní příklad, který ukazuje, jak LISTAGG() společnosti Oracle funkce funguje:

SELECT LISTAGG(region_name, ',') 
FROM regions;

Výsledek:

                      LISTAGG(REGION_NAME,',') 
______________________________________________ 
Europe,Americas,Asia,Middle East and Africa   

V tomto případě jsem uvedl, že oddělovačem je čárka.

Co se stane, když provedeme dotaz bez LISTAGG() funkce:

SELECT region_name 
FROM regions;

Výsledek:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa  

Dostaneme čtyři řádky, každý se samostatnou hodnotou, namísto jednoho řádku odděleného čárkou, který obsahuje všechny hodnoty.

LISTAGG() funkce nám také umožňuje seřadit výsledky, vrátit pouze jedinečné hodnoty (přes DISTINCT doložka) a další.

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


  1. Použití sloupce Oracle XMLType v režimu spánku

  2. SqlDataSourceEnumerator.Instance.GetDataSources() nenalezne místní instanci SQL serveru 2008

  3. SQL – jak transponovat?

  4. Co tento JavaScript vyžaduje?