Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server中使用列值作为节点将表数据转换为JSON值?_Sql_Json_Sql Server - Fatal编程技术网

如何在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我添加了另一个解决方案(更简单)。谢谢伙计!!!你帮了我很多。谢谢你谢谢你,万分感谢你。。。