我有一个查询,它需要一个明确数量的(比如说 100 个)值序列数组。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]')