3

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

1 に答える 1