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

SQL Server查询嵌套JSON提取subject返回null问题求助

解决SQL Server提取JSON数组中subject字段的问题

你的问题出在JSON_VALUE的使用逻辑上:JSON_VALUE仅能提取单个标量JSON值,但你的JSON里Node是一个JSON数组,直接用$.results.data.Node.subject的路径无法定位到数组内的元素,因此返回null。

要提取数组中所有subject字段,需用OPENJSON解析数组,配合CROSS APPLY关联原表,具体SQL语句如下:

SELECT 
    JSON_VALUE(node.value, '$.subject') AS subject
FROM
    YourTableName
CROSS APPLY
    OPENJSON(JsonResponse, '$.results.data.Node') AS node

关键说明:

  • OPENJSON(JsonResponse, '$.results.data.Node'):指定要解析的JSON列与数组路径,将数组拆分为一行行独立的JSON对象
  • CROSS APPLY:将原表的每一行与解析出的数组元素关联,生成对应多行结果
  • JSON_VALUE(node.value, '$.subject'):从每个数组元素(单个JSON对象)中提取subject值

如果需要保留原表其他字段,可直接在SELECT中添加,示例如下:

SELECT 
    t.Id, -- 替换为原表实际字段
    JSON_VALUE(node.value, '$.subject') AS subject
FROM
    YourTableName t
CROSS APPLY
    OPENJSON(t.JsonResponse, '$.results.data.Node') AS node

内容的提问来源于stack exchange,提问作者ɐlǝx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:45:14