【问题标题】:Transform properties from JSON array into comma-separated string将 JSON 数组中的属性转换为逗号分隔的字符串
【发布时间】:2021-08-09 19:50:02
【问题描述】:

我在 Azure 上的 SQL-Server 表中有一个字符串列,其中包含以下数据:

 {
        "status": "success",
        "data": [
            {
                "name": "Jane",
                "type": 0
            },
            {
                "name": "John",
                "type": 0
            }
        ]
    }

如何转换成逗号分隔的包含"Jane, John"的字符串?

【问题讨论】:

  • "data" 的大小总是一样吗?例如,它总是两个项目还是你需要它是动态的?
  • 嗨,“数据”没有固定的大小,它需要是动态的。

标签: sql json azure sql-server-2012


【解决方案1】:

这里如何通过我的一些旧代码的 sn-p 实现这一点,您应该能够遍历表并为每一行执行此操作。可能有更快的方法,但这会奏效。

DECLARE @JSON NVARCHAR(200) = '{"status": "success", "data": [{"name": "Jane", "type": 0},{"name": "John", "type": 0}]}',
    @result nvarchar(max) = ''


SELECT @result = @result + [value] + N', '
FROM (
    SELECT DISTINCT data.value
    FROM OPENJSON(@JSON, '$.data') as jsondata
    CROSS APPLY OPENJSON(jsondata.value) as data
    WHERE data.[key] = 'name') a

select @result = substring(@result, 1, (LEN(@result)-1))

select @result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 2021-12-18
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多