SQL SERVER: 将查询结果导出为JSON对象

3
我正在使用Azure SQL Server并尝试以以下格式导出查询结果。
所需查询结果:
{ "results": [{...},{...}], "response": 0 }
参考示例: https://msdn.microsoft.com/en-us/library/dn921894.aspx 我正在使用此SQL,但不确定如何将另一个响应属性作为根属性“results”的兄弟添加。
当前查询:
SELECT name, surname
FROM emp
FOR JSON AUTO, ROOT('results')

查询结果输出:

{ "results": [ { "name": "John", "surname": "Doe" }, { "name": "Jane", "surname": "Doe" } ] }


FOR JSON 在 SQL Azure DB 中仍然不可用。您是否在 VM 中使用 SQL 2016 CTP2? - Jovan MSFT
2个回答

3

我有一个变量 '@count' 和 '@resp',我需要将它们添加到与结果相同的级别上。我不确定如何在单个查询中完成这个操作,并将其转换为 JSON 格式。 - Basit Munir

1

没有内置的选项支持这种格式,所以可能最简单的方法是手动格式化响应,类似于:

declare @resp nvarchar(20) = '20'
SELECT '{"response":"' +
         (SELECT * FROM emp FOR JSON PATH) +
         '", "response": ' + @resp + ' }' 

FOR JSON将会完成更难的部分(表格格式化),你只需要对其进行包装。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接