【问题标题】:How Can I Iterate over each element in JSON array and join with rows in SQL SERVER如何遍历 JSON 数组中的每个元素并与 SQL SERVER 中的行连接
【发布时间】:2021-09-30 13:14:08
【问题描述】:

我有一个名为 Employee 的表,我想把它转成一个新表:

即动态入新表意味着可以动态改变JSON数据的属性个数:

如何在 SQL Server 2017 中动态执行?

【问题讨论】:

    标签: json sql-server pivot-table dynamic-queries


    【解决方案1】:

    您可以将OPENJSON 与表定义一起使用。

    您只需要使用REPLACE 使其成为有效的JSON

    SELECT
      e.id,
      e.name,
      j.score,
      j.point
    FROM Employee AS e
    CROSS APPLY OPENJSON(REPLACE(REPLACE(e.info, 'point', '"point"'), 'score', '"score"'))
      WITH (score int, point int) AS j;
    

    【讨论】:

    • [{score: 20, point: 10}] 不是有效的 JSON(对于 SQL Server)..
    • 好点,错过了,现在已经修好了
    • 谢谢,但我想要一个动态查询而不是 SQL SERVER 的静态查询,其中没有固定数量的 JSON 属性。
    • 我强烈建议您从源头修复数据,这根本不是有效的 JSON
    猜你喜欢
    • 2021-04-02
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多