Как перебирать поля, проверяя, являются ли они объектами JSON, и анализировать их соответствующим образом - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь решить проблему, в которой я хочу динамически сглаживать таблицы на сервере SQL, которые могут содержать объекты JSON в определенных полях.

Мне нужно иметь возможность циклически проходить через каждое поле, определять, находится ли оно в формате JSON, а затем динамически выравнивать их с помощью функции JSONValue () в SQL Server.

https://i.imgur.com/bqO4aPj.png

select SalesOrderNumber,
JSON_Value(JSONValue,'$.CustomerID') as CustomerID ,
JSON_Value(JSONValue,'$.OrderDate') as OrderDate ,
JSON_Value(JSONValue,'$.TotalDue') as TotalDue ,
JSON_Value(JSONValue,'$.ShipMethodID') as ShipMethodID ,
JSON_Value(JSONValue,'$.TerritoryID') as TerritoryID ,
JSON_Value(JSONValue,'$.SalesPersonID') as SalesPersonID 
from OrderHeaderJSON

Проблема в том, что им придется вручную выписывать функцию для каждого поля и записывать в нее соответствующий псевдоним.

Я не уверен, с чего начать - пишут ли хранимые процедуры, функции, использующие курсоры? Я надеюсь, что кто-то может указать мне правильное направление. Я думаю обойти каждое поле, выполнить ISJSON (), чтобы проверить, является ли его json, а затем правильно проанализировать его с помощью псевдонима, соответствующего имени ключа в объекте JSON.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...