Dans Oracle Database, le JSON_ARRAYAGG() La fonction crée un tableau JSON à partir d'une colonne d'expressions SQL.
Syntaxe
La syntaxe ressemble à ceci :
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
) Où :
exprest une expression SQL qui évalue un objet JSON, un tableau JSON, un littéral numérique, un littéral de texte ounull.FORMAT JSONindique que la chaîne d'entrée est JSON et ne sera donc pas entre guillemets dans la sortie.order_by_clausevous permet de classer les valeurs JSON dans le tableau JSON renvoyé par l'instruction.JSON_on_null_clausespécifie le comportement à utiliser lorsqueexprs'évalue à null (c'est-à-dire qu'il faut inclure ou non des valeurs nulles dans la sortie).JSON_agg_returning_clausespécifie le type de données de la chaîne de caractères renvoyée par cette fonction.STRICTvérifie si la sortie de la fonction de génération JSON est correcte ou non JSON. Si la vérification échoue, une erreur de syntaxe est générée.
Exemple
Supposons que nous lancions la requête SQL suivante :
SELECT region_name
FROM regions; Et il renvoie la sortie suivante :
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Si nous voulions que toutes ces valeurs soient des éléments dans un tableau JSON, nous pourrions passer le nom de la colonne au JSON_ARRAYAGG() fonction.
Comme ceci :
SELECT JSON_ARRAYAGG(region_name)
FROM regions; Résultat :
["Europe","Americas","Asia","Middle East and Africa"]
Trier par article
Voici un exemple d'utilisation de ORDER BY clause dans la fonction :
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions; Résultat :
["Middle East and Africa","Europe","Asia","Americas"]
Cet exemple a trié les éléments du tableau par ordre décroissant.
Le voici par ordre croissant :
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions; Résultat :
["Americas","Asia","Europe","Middle East and Africa"]
Consultez la documentation Oracle pour plus d'informations sur cette fonction.