Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle GROUP_CONCAT() Еквивалент

Някои RDBMS имат GROUP_CONCAT() функция, която ви позволява да върнете колона на заявка като разделен списък (например списък, разделен със запетая). MySQL и MariaDB са две, които имат такава функция.

PostgreSQL и SQL Server имат подобни функции, наречени STRING_AGG() .

Oracle, от друга страна, има LISTAGG() функция, която прави почти същото нещо (а може би и повече).

Така че можете да кажете, че LISTAGG() е GROUP_CONCAT() на Oracle еквивалент.

Пример

Ето основен пример, за да демонстрирате как LISTAGG() на Oracle функция работи:

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

Резултат:

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

В този случай уточних, че разделителят е запетая.

Ето какво се случва, когато просто направим заявката без LISTAGG() функция:

SELECT region_name 
FROM regions;

Резултат:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa  

Получаваме четири реда, всеки с отделна стойност, вместо един ред, разделен със запетая, който съдържа всички стойности.

LISTAGG() функция също така ни позволява да подреждаме резултатите, да връщаме само уникални стойности (чрез DISTINCT клауза) и още.

Вижте LISTAGG() Функция в Oracle за още примери.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. При влизане в режим на готовност е получена грешка 1033

  2. Стъпка по стъпка R12.2.6 Инсталиране на EBS на Virtual Box Част -2

  3. Oracle SQL Developer 21.4.2 и SQLcl 21.4.1 вече са налични

  4. Късо съединение на Oracle CASE не работи в група от

  5. Какъв тип обект връща методът за изпълнение на Spring Hibernate Template за заявка за броене в Oracle?