You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OPENJSON拼接SQL表列中的JSON数组

解决方案:解析JSON数组列并拼接字符串

不需要使用CURSOR,直接用OPENJSON结合STRING_AGG就能高效处理存储JSON数组的字符串列,按顺序拼接指定属性值。

示例代码

假设你的表名为YourTable,结构与提供的数据一致,执行以下查询即可得到期望结果:

SELECT 
    t.ID,
    STRING_AGG(j.val, '') WITHIN GROUP (ORDER BY j.id) AS Result
FROM YourTable t
CROSS APPLY OPENJSON(t.Value)
WITH (
    id INT '$.id',
    val NVARCHAR(100) '$.val'
) j
GROUP BY t.ID;

代码说明

  1. OPENJSON(t.Value):直接解析Value列中的JSON数组,无需额外路径参数(因为列本身就是数组结构)。
  2. WITH子句:定义从JSON对象中提取的字段,对应每个数组元素的id和val属性。
  3. STRING_AGG(j.val, ''):将同一ID分组下的所有val值拼接成字符串,WITHIN GROUP (ORDER BY j.id)确保按id的顺序拼接,保证结果顺序正确。

示例结果

IDResult
1john
2doe

这个方案是基于集合的操作,比CURSOR遍历效率更高,适合批量处理数据。

内容的提问来源于stack exchange,提问作者AsitK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:25:40