Sql server SQL SERVER:将查询结果导出为JSON对象
我正在使用Azure sql server并尝试以以下格式导出查询结果 所需查询结果: {“结果”:[{…},{…}],“响应”:0} 从这个例子中: 我正在使用此sql,但我不确定如何将另一个响应属性添加为根属性的同级:“results” 当前查询:Sql server SQL SERVER:将查询结果导出为JSON对象,sql-server,json,azure-sql-database,Sql Server,Json,Azure Sql Database,我正在使用Azure sql server并尝试以以下格式导出查询结果 所需查询结果: {“结果”:[{…},{…}],“响应”:0} 从这个例子中: 我正在使用此sql,但我不确定如何将另一个响应属性添加为根属性的同级:“results” 当前查询: SELECT name, surname FROM emp FOR JSON AUTO, ROOT('results') 查询的输出: {“结果”:[ {“姓名”:“约翰”,“姓氏”:“多伊”}, {“姓名”:“简”,“姓氏”:“多伊”}]}
SELECT name, surname
FROM emp
FOR JSON AUTO, ROOT('results')
查询的输出:
{“结果”:[
{“姓名”:“约翰”,“姓氏”:“多伊”},
{“姓名”:“简”,“姓氏”:“多伊”}]}
对JSON路径使用
,而不是对JSON AUTO使用。请参阅本页的几个示例,包括点分隔的列名和来自选择的查询。此格式没有内置选项,因此最简单的方法可能是手动设置响应格式,如:
declare @resp nvarchar(20) = '20'
SELECT '{"response":"' +
(SELECT * FROM emp FOR JSON PATH) +
'", "response": ' + @resp + ' }'
因为JSON将完成更难的部分(格式化表),您只需要包装它。我有一个变量'@count'。和'@resp',我需要将其添加到与结果相同的级别。我不知道如何在一个查询中做到这一点。并将其转换为json.FOR json在SQL Azure DB中仍然不可用。您是否在VM中使用SQL 2016 CTP2?