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

JSON_ARRAYAGG() Функция в Oracle

В Oracle Database, JSON_ARRAYAGG() функцията създава JSON масив от колона от SQL изрази.

Синтаксис

Синтаксисът е така:

JSON_ARRAYAGG
  ( expr [ FORMAT JSON ]  [ order_by_clause ]
    [ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
    [ STRICT ] 
  )

Къде:

  • expr е всеки SQL израз, който се оценява на JSON обект, JSON масив, числов литерал, текстов литерал или null .
  • FORMAT JSON показва, че входният низ е JSON и следователно няма да бъде в кавички в изхода.
  • order_by_clause ви позволява да подреждате стойностите на JSON в JSON масива, върнат от израза.
  • JSON_on_null_clause определя поведението, което да се използва, когато expr оценява на null (т.е. или включва нулеви стойности в изхода, или не).
  • JSON_agg_returning_clause определя типа данни на низа от символи, върнат от тази функция.
  • STRICT проверява дали изходът на функцията за генериране на JSON е правилен JSON. Ако проверката не успее, се появява синтактична грешка.

Пример

Да предположим, че изпълняваме следната SQL заявка:

SELECT region_name
FROM regions;

И връща следния изход:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa    

Ако искаме всички тези стойности да бъдат елементи в JSON масив, бихме могли да предадем името на колоната на JSON_ARRAYAGG() функция.

Като това:

SELECT JSON_ARRAYAGG(region_name)
FROM regions;

Резултат:

["Europe","Americas","Asia","Middle East and Africa"]

Поръчай по клауза

Ето пример за използване на ORDER BY клауза във функцията:

SELECT JSON_ARRAYAGG(
    region_name ORDER BY region_name DESC
    )
FROM regions;

Резултат:

["Middle East and Africa","Europe","Asia","Americas"]

Този пример сортира елементите на масива в низходящ ред.

Ето го във възходящ ред:

SELECT JSON_ARRAYAGG(
    region_name ORDER BY region_name ASC
    )
FROM regions;

Резултат:

["Americas","Asia","Europe","Middle East and Africa"]

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

  2. Как да форматирате число като валута в Oracle

  3. Oracle SQL GROUP BY не е помощен израз за GROUP BY

  4. Как да създадете PL/SQL съхранени процедури с параметри в базата данни на Oracle

  5. Как да декларирам и използвам променливи в PL/SQL, както правя в T-SQL?