将属性从 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
我在 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