JSON_ARRAYAGG 与 JSON_ARRAY

问题描述 投票:0回答:1

根据我多次阅读的Oracle DOC。 您能否用简单的解释向我解释一下主要区别(如果可能的话,举一些例子) 在 JSON_ARRAYAGG 和 JSON_ARRAY 之间 结束在哪里 2 这些更好用。

plsql oracle11g oracle10g
1个回答
0
投票

从 Oracle 12 开始,引入了这些函数:

  • JSON_ARRAY
    是一个标量函数,用于组合单行中的值。您可以将其与加法运算符进行比较,其中等效的是
    +
    运算符。
  • JSON_ARRAYAGG
    是一个聚合函数,合并多行。您可以将其与加法运算符进行比较,其中等效的是
    SUM
    聚合函数,用于跨多行添加值。

如果您有样本数据:

CREATE TABLE table_name (a, b) AS
SELECT 1, 2 FROM DUAL UNION ALL
SELECT 3, 4 FROM DUAL UNION ALL
SELECT 5, 6 FROM DUAL;

然后:

SELECT JSON_ARRAY(a, b) AS ab FROM table_name;

输出:

AB
[1,2]
[3,4]
[5,6]

并且:

SELECT JSON_ARRAYAGG(a) AS all_a, JSON_ARRAYAGG(b) AS all_b FROM table_name;

输出:

ALL_A ALL_B
[1,3,5] [2,6,4]

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.