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

SQL Server 2019中用JSON_VALUE提取Cost Center字段值报错解决

正确提取JSON嵌套字段的SQL Server语句

你的Tags列存储的是JSON数组,数组内对象的Tags属性是带转义引号的JSON片段字符串,并非直接的JSON对象。之前的错误是直接将整个数组与{}拼接,生成了非法JSON结构,导致路径解析报错。

方法一:嵌套使用JSON_VALUE

先从外层JSON数组提取内部的Tags字符串,再将其包装为合法JSON对象后提取目标字段:

SELECT 
    [ID],
    [Tags],
    JSON_VALUE('{' + JSON_VALUE(Tags, '$[0].Tags') + '}', '$."Cost Center"') AS CostCenter
FROM [dbo].[table_details]
  • JSON_VALUE(Tags, '$[0].Tags'):定位数组第一个元素的Tags属性,取出带转义的JSON片段字符串
  • '{' + ... + '}':将片段包装为合法JSON对象
  • 最终通过JSON_VALUE提取"Cost Center"字段值

方法二:用OPENJSON处理数组

如果数组可能包含多个元素,推荐用OPENJSON展开数组后处理:

SELECT 
    td.[ID],
    td.[Tags],
    JSON_VALUE('{' + j.Tags + '}', '$."Cost Center"') AS CostCenter
FROM [dbo].[table_details] td
CROSS APPLY OPENJSON(td.Tags) WITH (Tags NVARCHAR(MAX) '$.Tags') j

这种方式会自动展开数组内的每个元素,逐个提取对应的Cost Center值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:25:41