En Oracle Database, el JSON_ARRAYAGG()
La función crea una matriz JSON a partir de una columna de expresiones SQL.
Sintaxis
La sintaxis es así:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
)
Dónde:
expr
es cualquier expresión SQL que se evalúa como un objeto JSON, una matriz JSON, un literal numérico, un literal de texto onull
.FORMAT JSON
indica que la cadena de entrada es JSON y, por lo tanto, no se citará en la salida.order_by_clause
le permite ordenar los valores JSON dentro de la matriz JSON devuelta por la instrucción.JSON_on_null_clause
especifica el comportamiento a usar cuandoexpr
se evalúa como nulo (es decir, incluye valores nulos en la salida o no).JSON_agg_returning_clause
especifica el tipo de datos de la cadena de caracteres devuelta por esta función.STRICT
comprueba si la salida de la función de generación de JSON es JSON correcta o no. Si la comprobación falla, se genera un error de sintaxis.
Ejemplo
Supongamos que ejecutamos la siguiente consulta SQL:
SELECT region_name
FROM regions;
Y devuelve el siguiente resultado:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Si quisiéramos que todos esos valores fueran elementos en una matriz JSON, podríamos pasar el nombre de la columna a JSON_ARRAYAGG()
función.
Así:
SELECT JSON_ARRAYAGG(region_name)
FROM regions;
Resultado:
["Europe","Americas","Asia","Middle East and Africa"]
Ordenar por cláusula
Aquí hay un ejemplo del uso de ORDER BY
cláusula dentro de la función:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions;
Resultado:
["Middle East and Africa","Europe","Asia","Americas"]
Ese ejemplo ordenó los elementos de la matriz en orden descendente.
Aquí está en orden ascendente:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions;
Resultado:
["Americas","Asia","Europe","Middle East and Africa"]
Consulte la documentación de Oracle para obtener más información sobre esta función.