我有一个查询,它需要一个由一百个数组组成的数组,每个数组中包含一系列的值。JSON大致长这样:
[["horse",6],
...,
["dog",100]]
每个数组元素直接映射到另一个表格。虽然我可以使用以下方法进行更新,但我更希望能够使用明确的模式。
update some_table
set favorite_animal=convert(varchar(50),json_value(value,'strict $[0]'))
,favorite_number=convert(int,json_value(value,'strict $[1]'))
from openjson(@json)
where id = convert(int,[key])
很不幸,当我使用显式模式时,我不确定如何指定当前路径([key]
中的值)。
我非常希望能做类似这样的事情,但我找不到语法:
from openjson(@json)
with (favAnimal varchar(50) '$[0]',favNumber int '$[1]', row int '[key]')