sql >> Databáze >  >> RDS >> Oracle

Funkce JSON_ARRAYAGG() v Oracle

V databázi Oracle je to JSON_ARRAYAGG() vytvoří pole JSON ze sloupce výrazů SQL.

Syntaxe

Syntaxe vypadá takto:

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

Kde:

  • expr je jakýkoli výraz SQL, který se vyhodnotí jako objekt JSON, pole JSON, číselný literál, textový literál nebo null .
  • FORMAT JSON označuje, že vstupní řetězec je JSON, a proto nebude na výstupu uveden.
  • order_by_clause umožňuje seřadit hodnoty JSON v rámci pole JSON vráceného příkazem.
  • JSON_on_null_clause určuje chování, které se má použít, když expr vyhodnotí jako null (tj. buď zahrnout hodnoty null do výstupu, nebo ne).
  • JSON_agg_returning_clause určuje datový typ znakového řetězce vráceného touto funkcí.
  • STRICT zkontroluje, zda výstup funkce generování JSON je správný JSON. Pokud kontrola selže, dojde k chybě syntaxe.

Příklad

Předpokládejme, že spustíme následující SQL dotaz:

SELECT region_name
FROM regions;

A vrátí následující výstup:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa    

Pokud bychom chtěli, aby všechny tyto hodnoty byly prvky v poli JSON, mohli bychom předat název sloupce do JSON_ARRAYAGG() funkce.

Takhle:

SELECT JSON_ARRAYAGG(region_name)
FROM regions;

Výsledek:

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

Řadit podle klauzule

Zde je příklad použití ORDER BY klauzule ve funkci:

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

Výsledek:

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

Tento příklad seřadil prvky pole v sestupném pořadí.

Zde je ve vzestupném pořadí:

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

Výsledek:

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

Další informace o této funkci naleznete v dokumentaci Oracle.


  1. Dočasné ukládání objektů do mezipaměti serveru SQL

  2. MySQL:Neplatné použití skupinové funkce

  3. Modelování otevřeného trhu pro vzdělávání

  4. Jak opravit chybu Microsoft SQL Server 926?- Vyřešeno