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

Sql server 如何通过TSQL从SQL Server查询生成JSON字符串?,sql-server,json,tsql,Sql Server,Json,Tsql,我想知道是否有任何函数或东西可以将SQL select查询结果转换为JSON字符串格式 例如,SQL select查询结果为 current target ----------------- 500 1000 1500 2000 JSON结果: [{"current":500,"target":1000},{"current":1500,"target":2000}] 任何想法都会有帮助 谢谢。 MS SQL Server 2008架构设置: DECLARE @

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

例如,SQL select查询结果为

current   target
-----------------
  500      1000
  1500     2000
JSON结果:

[{"current":500,"target":1000},{"current":1500,"target":2000}]
任何想法都会有帮助

谢谢。

MS SQL Server 2008架构设置

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,'') + ']'
[{"current":500,"target":1000},{"current":1500,"target":2000}] 
查询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,'') + ']'
[{"current":500,"target":1000},{"current":1500,"target":2000}] 

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,'') + ']'
[{"current":500,"target":1000},{"current":1500,"target":2000}] 

您没有指定版本

在SQL Server 2016中,您将能够执行以下操作

SELECT [current], 
       target
FROM YourTable
ORDER BY [current]
FOR JSON AUTO;

还是在副本中?看看这里,我将更新代码以包含内部引号:
+CAST([target]AS VARCHAR(30))+
+'”+CAST([target]AS VARCHAR(30))+'”