如何通过TSQL从SQL Server查询生成JSON字符串?

Arp*_*ita 2 t-sql sql-server json

我想知道是否有任何函数或东西可以将SQL select查询结果转换为JSON字符串格式?

例如,SQL选择查询结果是,

current   target
-----------------
  500      1000
  1500     2000
Run Code Online (Sandbox Code Playgroud)

JSON结果:

[{"current":500,"target":1000},{"current":1500,"target":2000}]
Run Code Online (Sandbox Code Playgroud)

任何想法都会有所帮助。

谢谢。

M.A*_*Ali 5

SQL小提琴

MS SQL Server 2008架构设置

查询1

DECLARE @TABLE TABLE ([current] INT, [target] INT)
INSERT INTO @TABLE VALUES 
(500   ,   1000),
(1500  ,   2000)


SELECT '[' +  STUFF((SELECT ',{"current":' + CAST([current] AS VARCHAR(30)) 
   + ',"target":' + CAST([target] AS VARCHAR(30)) + '}'
FROM @TABLE
FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'),1,1,'') + ']'
Run Code Online (Sandbox Code Playgroud)

结果

[{"current":500,"target":1000},{"current":1500,"target":2000}] 
Run Code Online (Sandbox Code Playgroud)


Mar*_*ith 5

您没有指定版本。

在 SQL Server 2016 中,您将能够执行类似的操作

SELECT [current], 
       target
FROM YourTable
ORDER BY [current]
FOR JSON AUTO;
Run Code Online (Sandbox Code Playgroud)

更多详细信息请参见此处官方预发布文档