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

Върнете резултатите от заявката като списък, разделен със запетая в Oracle

В Oracle можем да използваме LISTAGG() функция за преобразуване на резултатите от нашата заявка в списък, разделен със запетая.

Така че, вместо всяка стойност да се извежда в отделен ред, всички стойности се извеждат в един ред, разделени със запетая (или друг разделител по наш избор).

Пример

Представете си, че изпълняваме следната заявка:

SELECT last_name 
FROM employees
WHERE job_id = 'IT_PROG';

Резултат:

   LAST_NAME 
____________ 
Hunold       
Ernst        
Austin       
Pataballa    
Lorentz      

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

Ако искаме тези стойности да бъдат изведени на един ред, можем да направим следното:

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

Резултат:

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

Всичко, което направихме, беше да предадем името на колоната на LISTAGG() функция, както и избрания от нас разделител.

Можем да използваме различен разделител или да пропуснем този аргумент напълно, така че всички елементи да бъдат свързани.

Функцията също така приема DISTINCT клауза (за премахване на дублиращи се стойности) и ORDER BY клауза (за подреждане на изхода на функцията).

Функцията също може да бъде доста удобна при групиране на резултатите от заявката.

Вижте 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. Как мога да създам копие на таблица на Oracle, без да копирам данните?

  2. Как да създадете обект oracle.sql.ARRAY?

  3. Експортирайте данни в Excel от Oracle Table с помощта на PL SQL

  4. Вмъкване на данни в базата данни на Oracle с помощта на php

  5. Съвет за използване на обобщена таблица в Oracle