Eu tenho o resultado de uma FOR JSON
expressão e gostaria de inseri-lo em uma coluna da tabela.
Como faço isso?
Aqui está uma das minhas tentativas malsucedidas (observe que a SELECT hightrees ... FOR JSON PATH
parte está correta, e pode ser vista na resposta à minha outra pergunta , e aqui também a demonstração ao vivo ), que dá o erro Invalid object name 'TreesJson'
:
SELECT * FROM (
SELECT
highTrees = JSON_QUERY(
(
SELECT
Id as id,
Type as type,
Height as height
FROM Trees WHERE [Height] > 5
FOR JSON PATH
)
),
lowTrees = JSON_QUERY(
(
SELECT
Id as id,
Type as type,
Height as height
FROM Trees WHERE [Height] < 1
FOR JSON PATH
)
)
FOR JSON
PATH, WITHOUT_ARRAY_WRAPPER
) AS TreesJson;
INSERT INTO TreesGrowthLog ([Day], [TreesGrowth])
VALUES (CAST(GETDATE() AS Date, (SELECT * FROM TreesJson FOR JSON AUTO))
Aqui está uma maneira de fazer isso:
com valores caminho
e com versão CTE:
ou use a tabela temporária #