Мне кажется, что проблема в том, что ваш JSON ведет себя не так, как вы ожидаете.
Ваш JSON - это массив , содержащий два значения idTest1
и idTest2
.Ваш путь $.idTest1
не работает, потому что значения существуют внутри записи массива.Посмотрите на вывод JSON:
[{"idTest1":111111,"idTest2":222222}] -- The square brackets are a dead giveaway!
Из-за массива вам необходимо изменить путь к фактору в элементе first :
SELECT JSON_Column,
JSON_VALUE(JSON_Column,'$[0].idTest1') AS idTest1,
JSON_VALUE(JSON_Column,'$[0].idTest2') AS idTest2
FROM @TestTable
Обратите внимание, что я изменил путь к $[0].idTest1
.При этом будет выбрано значение idTest1
первого элемента в массиве.
Между прочим, если у вас включено строгое сопоставление путей, это привело бы к ошибке (как и должно быть) и могло бы помочь вам диагностироватьпроблема быстрее.
Рабочая скрипка здесь .