如何在SQL Server中使用列值作为节点将表数据转换为JSON值?
您好,我是如何在SQL Server中使用列值作为节点将表数据转换为JSON值?,sql,json,sql-server,Sql,Json,Sql Server,您好,我是sqlserver中JSON流程的新手 这是我的桌子: DECLARE @Example TABLE ( ThirdPartyInterfaceData VARCHAR(10) ,ThirdPartyInterfaceName VARCHAR(10) ,Name VARCHAR(512) ,Value VARCHAR(800) ) INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SM
sqlserver
中JSON
流程的新手
这是我的桌子:
DECLARE @Example TABLE
(
ThirdPartyInterfaceData VARCHAR(10)
,ThirdPartyInterfaceName VARCHAR(10)
,Name VARCHAR(512)
,Value VARCHAR(800)
)
INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SMSAuthID','MAMDQ1ODNJN2JMMZMWZD')
INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SMSAuthToken','YWU5NTlhNzgxYTA1OWY4NTFkMTM4NWY4ZjM5Y2Zl')
INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SMSFrom','Venue Metro')
INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SMSStatusMonitorURL','http://www.google.com')
INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SMSStatusMonitorURLMethod','POST')
INSERT INTO @Example VALUES('SMS','PLIVO','SYSTEM_SMSRestAPIVersion','v1')
我希望以如下特定方式将表数据转换为JSON值:
预期输出:
{
"ThirdPartyInterfaceData": {
"SMS":
{
"ThirdPartyInterfaceName": "PLIVO",
"SYSTEM_SMSAuthID": "MAMDQ1ODNJN2JMMZMWZD",
"SYSTEM_SMSAuthToken": "YWU5NTlhNzgxYTA1OWY4NTFkMTM4NWY4ZjM5Y2Zl",
"SYSTEM_SMSFrom": "Venue Metro",
"SYSTEM_SMSStatusMonitorURL": "http://www.google.com",
"SYSTEM_SMSStatusMonitorURLMethod": "POST",
"SYSTEM_SMSRestAPIVersion": "v1"
}
}
}
[
{
"ThirdPartyInterfaceData":"SMS",
"ThirdPartyInterfaceName":"PLIVO",
"Name":"SYSTEM_SMSAuthID",
"Value":"MAMDQ1ODNJN2JMMZMWZD"
},
{
"ThirdPartyInterfaceData":"SMS",
"ThirdPartyInterfaceName":"PLIVO",
"Name":"SYSTEM_SMSAuthToken",
"Value":"YWU5NTlhNzgxYTA1OWY4NTFkMTM4NWY4ZjM5Y2Zl"
},..
..."
}
]
我尝试了一些东西,使用JSON AUTO的,它给出了以下值:
电流输出:
{
"ThirdPartyInterfaceData": {
"SMS":
{
"ThirdPartyInterfaceName": "PLIVO",
"SYSTEM_SMSAuthID": "MAMDQ1ODNJN2JMMZMWZD",
"SYSTEM_SMSAuthToken": "YWU5NTlhNzgxYTA1OWY4NTFkMTM4NWY4ZjM5Y2Zl",
"SYSTEM_SMSFrom": "Venue Metro",
"SYSTEM_SMSStatusMonitorURL": "http://www.google.com",
"SYSTEM_SMSStatusMonitorURLMethod": "POST",
"SYSTEM_SMSRestAPIVersion": "v1"
}
}
}
[
{
"ThirdPartyInterfaceData":"SMS",
"ThirdPartyInterfaceName":"PLIVO",
"Name":"SYSTEM_SMSAuthID",
"Value":"MAMDQ1ODNJN2JMMZMWZD"
},
{
"ThirdPartyInterfaceData":"SMS",
"ThirdPartyInterfaceName":"PLIVO",
"Name":"SYSTEM_SMSAuthToken",
"Value":"YWU5NTlhNzgxYTA1OWY4NTFkMTM4NWY4ZjM5Y2Zl"
},..
..."
}
]
但是我的要求是上面的格式,可以吗?谁能帮我弄到这个
提前感谢。我们可以使用动态SQL。我正在从@Example
表中删除行,因此,如果您想使用我的解决方案而不从主表中删除行,则必须创建其他表并插入所有值。它应该适用于ThirdPartyInterfaceData
和ThirdPartyInterfaceName
列中的多个不同值。
需要SQL Server 2016
第一种方式(使用WHILE
循环)
ThirdPartyInterfaceData
和ThirdPartyInterfaceName
列中的值是否恒定?不,这就是问题所在。他们不是康斯坦特谢谢你,兄弟,你做得很好!!。我接受这个答案。我还有一个问题,我必须将这个JSON设置为一个变量或插入一个临时表。有可能吗?@DineshDB我已经编辑了答案。现在JSON被设置为变量。我认为这可以用更简单的方式完成(整个JSON生成过程,没有循环),但我需要考虑一下。@DineshDB我添加了另一个解决方案(更简单)。谢谢伙计!!!你帮了我很多。谢谢你谢谢你,万分感谢你。。。