将表中的JSON对象合并到JSON输出中

时间:2018-08-10 08:56:37

标签: json sql-server

我有两个带有一些数据的表:

表1:单行数据actin作为表2中包含的数据的标题信息。

表2:具有多行的表,其中包括各种数据列,但也包括两列,这些列具有JSON格式的文本(varchar(max))

可在此处获得示例数据:
https://docs.google.com/spreadsheets/d/1Y1Zb2a2G-NZ71wNLQxTTeiF8gXdLuIRfUrqBVmAdTFU/edit#gid=0

要求是将表2中的表2中的数据包装起来,以产生一个有效的JSON输出,其中包括两列以JSON格式的文本。

我希望输出由如下所示的东西产生:

SELECT *
    ,(
        SELECT *
        FROM Table2
        FOR JSON path
        ) elements
FROM Table1
FOR JSON path

我不确定最好的方法是将JSON格式的文本合并到此输出中。我怀疑必须使用JSON_modify()来实现这一目标。

您有什么建议吗?

1 个答案:

答案 0 :(得分:0)

答案实际上很简单。该语句仅需要两列JSON_Query()语句(带有格式化的JSON文本)即可获得所需的输出。

SELECT *,
       (
        SELECT 
SequenceID,ItemID,Description,arrow,arrowColor,Value,valueUnit,volatility,BulletChartID,JSON_Query(BulletChart) BulletChart,JSON_Query(TrendLineChart) TrendLineChart
        FROM Table2
        FOR JSON path
        ) elements
FROM Table1
FOR JSON path