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

Funkcja JSON_ARRAYAGG() w Oracle

W bazie danych Oracle JSON_ARRAYAGG() funkcja tworzy tablicę JSON z kolumny wyrażeń SQL.

Składnia

Składnia wygląda tak:

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

Gdzie:

  • expr to dowolne wyrażenie SQL, którego wynikiem jest obiekt JSON, tablica JSON, literał numeryczny, literał tekstowy lub null .
  • FORMAT JSON wskazuje, że ciąg wejściowy to JSON i dlatego nie będzie cytowany w danych wyjściowych.
  • order_by_clause pozwala uporządkować wartości JSON w tablicy JSON zwróconej przez instrukcję.
  • JSON_on_null_clause określa zachowanie do użycia, gdy expr zwraca wartość null (tj. albo dołącz wartości null do danych wyjściowych, albo nie).
  • JSON_agg_returning_clause określa typ danych ciągu znaków zwracanego przez tę funkcję.
  • STRICT sprawdza, czy dane wyjściowe funkcji generowania JSON są poprawne w formacie JSON. Jeśli sprawdzenie się nie powiedzie, zgłaszany jest błąd składni.

Przykład

Załóżmy, że uruchamiamy następujące zapytanie SQL:

SELECT region_name
FROM regions;

I zwraca następujący wynik:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa    

Jeśli chcielibyśmy, aby wszystkie te wartości były elementami tablicy JSON, moglibyśmy przekazać nazwę kolumny do JSON_ARRAYAGG() funkcja.

Tak:

SELECT JSON_ARRAYAGG(region_name)
FROM regions;

Wynik:

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

Uporządkuj według klauzuli

Oto przykład użycia ORDER BY klauzula w funkcji:

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

Wynik:

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

Ten przykład posortował elementy tablicy w kolejności malejącej.

Oto w porządku rosnącym:

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

Wynik:

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

Więcej informacji na temat tej funkcji można znaleźć w dokumentacji 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. Jak zwrócić liczbę sekund po północy w bazie danych Oracle?

  2. przechwyć wyjątek DB w aplikacji JSF+EJB

  3. Jak wykonać SQL z poziomu skryptu bash?

  4. Jak przekonwertować znacznik czasu z milisekundami do tej pory w Oracle

  5. Jak rozwiązać ORA-00911:błąd nieprawidłowego znaku?