【发布时间】:2018-12-21 16:25:46
【问题描述】:
我的表中有一个 json 字段,其中包含这样的数组:-
[
{
"ID": 11111,
"Name": "apple",
},
{
"ID": 22222,
"Name": "orange",
},
{
"ID": 333333,
"Name": "banana",
}
]
我想将以下 json 数组附加/连接到这个数组:-
[
{
"ID": 44444,
"Name": "grape",
},
{
"ID": 55555,
"Name": "kiwi",
},
{
"ID": 66666,
"Name": "fig",
}
]
所以我最终在表格字段中得到了这个:-
[
{
"ID": 11111,
"Name": "apple",
},
{
"ID": 22222,
"Name": "orange",
},
{
"ID": 333333,
"Name": "banana",
},
{
"ID": 44444,
"Name": "grape",
},
{
"ID": 55555,
"Name": "kiwi",
},
{
"ID": 66666,
"Name": "fig",
}
]
即我已将三个新元素添加到三个现有元素中,因此我现在在我的表字段中有一个包含六个元素的数组。
我一直在尝试使用 JSON_MODIFY 来完成这项工作,并成功地将单个元素添加到数组中,如下所示:-
select JSON_MODIFY(json_field,'append $', JSON_QUERY('{ "ID": 44444, "Name": "grape" }'))
但我不能让它在单个操作中附加多个元素并使其看起来像需要的那样,我一直在尝试这种变体:-
select JSON_MODIFY(json_field,'append $', JSON_QUERY('[{ "ID": 44444, "Name": "grape" }, { "ID": 55555, "Name": "kiwi" }, { "ID": 66666, "Name": "fig" }]'))
在这种特殊情况下,它附加了方括号,因此三个新元素最终成为一个子数组!
是否可以像这样将一个数组的多个元素附加到另一个数组? (我是不是真的很厚,错过了什么明显的东西?!?)
【问题讨论】:
标签: sql json sql-server tsql sql-server-2016