Как мне сопоставить ключ в запросе openjson с явной схемой? - PullRequest
0 голосов
/ 01 мая 2019

У меня есть запрос, который принимает массив с явным числом (скажем, 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]')
...