SQL - 如何将 JSON_QUERY 输出存储到变量

hog*_*gar 1 sql t-sql json sql-server-2016

我有这个查询,我试图将查询输出存储到@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
Run Code Online (Sandbox Code Playgroud)

错误:

消息 156,级别 15,状态 1,第 11 行
关键字“AS”附近的语法不正确。

我怎样才能做到这一点?

hog*_*gar 5

按照 VBokši? 的链接,我将此查询作为答案:

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
Run Code Online (Sandbox Code Playgroud)

输出:

{"product":{"title":"Ball","color":"Blue","Options":[{"Opt1":"1","Opt2":"2"}]}}
Run Code Online (Sandbox Code Playgroud)