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ù :
expr
est une expression SQL qui évalue un objet JSON, un tableau JSON, un littéral numérique, un littéral de texte ounull
.FORMAT JSON
indique que la chaîne d'entrée est JSON et ne sera donc pas entre guillemets dans la sortie.order_by_clause
vous permet de classer les valeurs JSON dans le tableau JSON renvoyé par l'instruction.JSON_on_null_clause
spécifie le comportement à utiliser lorsqueexpr
s'évalue à null (c'est-à-dire qu'il faut inclure ou non des valeurs nulles dans la sortie).JSON_agg_returning_clause
spécifie le type de données de la chaîne de caractères renvoyée par cette fonction.STRICT
vé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.