Как я могу сгенерировать JSON в T-SQL, используя FOR JSON
из оператора select, использующего Common Table Expression (CTE), и затем сохранить его в локальной переменной?Без CTE это могло бы выглядеть так:
DECLARE @var NVARCHAR(MAX) = (
SELECT x.Val
FROM (VALUES (1)) AS x(Val)
FOR JSON AUTO
)
SELECT @var
Но каков синтаксис, если используется CTE, как показано ниже?
WITH y AS (
SELECT Val
FROM (VALUES (1)) AS _(Val)
)
SELECT x.Val, y.Val ValY
FROM (VALUES (1)) AS x(Val)
JOIN y ON y.Val = x.Val
FOR JSON AUTO
Окружение с DECLARE @var NVARCHAR(MAX) = ( ... )
не работает.