我有一个应用程序需要提供配置数据作为 JSON 中的键值对。
我想从表查询中输出键值对的 JSON。
表格可以有不同的命名项目和不同数量的项目。
表格
SQL
select ................. FOR JSON PATH
我猜这需要使用 PIVOT?
预期 JSON
{"caption":"Profit by Product","bgColor":"#FFFFFF","showBorder":"0","showsum":"0"}
感谢任何人可以提供的帮助。
最佳答案
你可以做一些字符串聚合(假设不是 2017 年)
示例
Declare @YourTable Table ([ITEMID] varchar(50),[REPORTID] varchar(50),[NAME] varchar(50),[VALUE] varchar(50)) Insert Into @YourTable Values
(1,29,'caption','Profit by Product')
,(2,29,'bgColor','#FFFFFF')
,(3,29,'showBorder','0')
,(4,29,'showsum','0')
Select REPORTID
,JSONString = '{' + Stuff((Select concat(',','"',Name,'":"',value,'"') From @YourTable Where ReportID=A.ReportID For XML Path ('')),1,1,'') + '}'
From @YourTable A
Group by REPORTID
返回
REPORTID JSONString
29 {"caption":"Profit by Product","bgColor":"#FFFFFF","showBorder":"0","showsum":"0"}
关于json - 从 T-SQL 查询将键值对输出为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852686/