Как использовать Select Value в качестве ключа для JSON в SQL - PullRequest
0 голосов
/ 26 июня 2019

У меня есть хранимая процедура tsql, которая генерирует файл json базы данных, с которой я работаю. Определенная часть файла json представляет собой массив свойств с именем, значением и переменной требования. Эта часть файла JSON выглядит следующим образом:

"Properties": [
    {
        "PropertyName": "Foo"
        "PropertyValue": "Bar"
        "Required": "True"
    },
    {
        "PropertyName": "Foo2"
        "PropertyValue": "Bar2"
        "Required": "False"
    }
]

Это генерируется как подзапрос более крупного запроса SQL, который создает весь документ JSON:

SELECT,..., 
    (SELECT P.Name as PropertyName, P.Value as PropertyValue, P.Requirement as Required 
    FROM Properties P FOR JSON PATH) as Properties
FROM Foo
FOR JSON PATH

Я хочу, чтобы файл JSON был размечен, поэтому значение PropertyName является ключом для двух других значений:

"Properties" [
    {"Foo": {{"PropertyValue": "Bar"},{"Required": "True"}},
    etc.
]

В идеале код может выглядеть примерно так:

(Select P.Value as [[P.Name].PropertyValue], P.Requirement as [[P.Name].Required]
 FROM Properties P 
 FOR JSON PATH)

Но, очевидно, это не является юридическим выражением. Есть ли способ сделать это в рамках SQL или мне следует изменить файл после его создания?

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