一連の値の配列の明示的な数 (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]')