Sql server 如何通过TSQL从SQL Server查询生成JSON字符串?
我想知道是否有任何函数或东西可以将SQL select查询结果转换为JSON字符串格式 例如,SQL select查询结果为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 @
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))+'”