将属性从 JSON 数组转换为逗号分隔的字符串

Transform properties from JSON array into comma-separated string

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

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

如何转化为逗号分隔的字符串"Jane, John"

这里是如何通过我的一些旧代码片段实现这一点的,您应该能够遍历 table 并对每一行执行此操作。可能有更快的方法,但这会起作用。

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