需要SQL JSON帮助和查询帮助

时间:2018-02-20 19:11:50

标签: sql json

美好的一天Stackoverflow,

我发现自己有点奇怪的查询情况。你看,我必须提出一个存储过程,它返回一个像这样的数据集;

[
"TestCase1": {
    "SetText": {
        "Element":"Username"
        "Value":"123456"
    },
    "SetText": {
        "Element":"Username",
        "Value":"Admin"
    },
    "OnClick": {
        "Element":"SubmitButton"
    },
    "Login": {
        "Username":"admin",
        "Password":"123456"
    }
}
]

正如您所看到的,数据集由TestCase1保存在一起,TestCase1引用了表列名称。 Test.Name

接下来,函数名称包含多个对象。 每个函数的Key都是参数名称,键值是参数值

因此,在此示例中,测试用例1有4个操作

  1. SetText(“用户名”,“123456”)
  2. SetText(“密码”,“管理员”)
  3. OnClick(“SubmitButton”)
  4. 登录( “管理员”, “123456”)
  5. 问题是;我在下面的查询列表中无法将其改为我上面的JSON

    SELECT TD.ID, F.[Name] AS [Function], P.[Name] AS [Parameter], E.[Name] AS [Data] FROM [QA].[TestData] TD
    LEFT JOIN QA.[Parameter] P ON P.ID = TD.ParameterID
    INNER JOIN QA.[Function] F ON F.ID = P.FunctionID
    INNER JOIN QA.[XREF_Parameter_Element] XPE ON (P.ParameterTypeID = 1) AND (XPE.ID = TD.DataID)
    INNER JOIN QA.[Element] E ON E.ID = XPE.ElementID
    UNION ALL
    SELECT TD.ID, F.[Name] AS [Function], P.[Name] AS [Parameter], XPV.[Value] AS [Data] FROM [QA].[TestData] TD
    LEFT JOIN QA.[Parameter] P ON P.ID = TD.ParameterID
    INNER JOIN QA.[Function] F ON F.ID = P.FunctionID
    INNER JOIN QA.[XREF_Parameter_Value] XPV ON (P.ParameterTypeID <> 1) AND (XPV.ID = TD.DataID)
    ORDER BY TD.ID
    
    FOR JSON PATH, ROOT('TestCase1')
    

    以上查询结果为

    {
    "TestCase1":[
        {
            "ID":1,
            "Function":"SetText",
            "Parameter":"Element",
            "Data":"Username"
        },{
            "ID":2,
            "Function":"SetText",
            "Parameter":"Value",
            "Data":"123456"
        },{
            "ID":3,
            "Function":"SetText",
            "Parameter":"Element",
            "Data":"Username"
        },{
            "ID":4,
            "Function":"SetText",
            "Parameter":"Value",
            "Data":"Admin"
        },{
            "ID":5,
            "Function":"OnClick",
            "Parameter":"Element",
            "Data":"SubmitButton"
        },{
            "ID":6,
            "Function":"Login",
            "Parameter":"Username",
            "Data":"Admin"
        },{
            "ID":7,
            "Function":"Login",
            "Parameter":"Password",
            "Data":"123456"
        }
    ]
    
    }
    

    是否有人能够帮助我。我更愿意分享联系信息,以便更清楚。这只是让我的大脑分开。

0 个答案:

没有答案