Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle GROUP_CONCAT() Odpowiednik

Niektóre RDBMS mają funkcję GROUP_CONCAT() funkcja, która umożliwia zwrócenie kolumny zapytania jako listy rozdzielanej (na przykład listy rozdzielanej przecinkami). MySQL i MariaDB to dwa, które mają taką funkcję.

PostgreSQL i SQL Server mają podobne funkcje o nazwie STRING_AGG() .

Z drugiej strony Oracle ma LISTAGG() funkcja, która robi prawie to samo (a może nawet więcej).

Można więc powiedzieć, że LISTAGG() to GROUP_CONCAT() Oracle odpowiednik.

Przykład

Oto podstawowy przykład demonstrujący, jak Oracle LISTAGG() funkcja działa:

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

Wynik:

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

W tym przypadku określiłem, że separatorem jest przecinek.

Oto, co się dzieje, gdy wykonujemy zapytanie bez LISTAGG() funkcja:

SELECT region_name 
FROM regions;

Wynik:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa  

Otrzymujemy cztery wiersze, każdy z oddzielną wartością, zamiast jednego wiersza oddzielonego przecinkami, który zawiera wszystkie wartości.

LISTAGG() funkcja umożliwia nam również porządkowanie wyników, zwracanie tylko unikalnych wartości (poprzez DISTINCT klauzula) i nie tylko.

Zobacz LISTAGG() Funkcja w Oracle, aby uzyskać więcej przykładów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nazwy Oracle TNS nie wyświetlają się podczas dodawania nowego połączenia do SQL Developer

  2. Uruchomić 2 zapytania jednocześnie w Oracle SQL Developer?

  3. Znajdowanie przyczyny błędu zakleszczenia w pliku śledzenia Oracle

  4. Jak używać ora_hash w kolumnie typu danych xmltype

  5. Wydano SQL Developer 4.1.3