SQL - Как сохранить вывод JSON_QUERY в переменную - PullRequest
1 голос
/ 31 октября 2019

У меня есть этот запрос, в котором я пытаюсь сохранить выходные данные запроса в переменной @json, но получаю синтаксическую ошибку

DECLARE @json NVARCHAR(MAX)

SELECT @json = (JSON_QUERY((SELECT 
                                'Ball' AS title, 
                                'Blue' AS color, 
                                (SELECT 
                                     '1' AS Opt1, 
                                     '2' AS Opt2 
                                 FOR JSON PATH) AS Options
                            FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)) AS Product
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;)

SELECT @json

Ошибка:

Сообщение 156,Уровень 15, состояние 1, строка 11
Неправильный синтаксис рядом с ключевым словом «AS».

Как я могу это сделать?

1 Ответ

4 голосов
/ 31 октября 2019

По ссылке В.Бокшича я сделал этот запрос в качестве ответа:

DECLARE @json NVARCHAR(MAX)

SET @json = (SELECT (JSON_QUERY((
    SELECT 'Ball' AS title, 
           'Blue' AS color, (
                SELECT '1' AS Opt1, 
                       '2' AS Opt2 
                FOR JSON PATH
           ) AS Options
    FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
    ))) AS product
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)

SELECT @json

Вывод:

{"product":{"title":"Ball","color":"Blue","Options":[{"Opt1":"1","Opt2":"2"}]}}
...