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

SQL如何将选中ConfigKey的JSON值以ConfigKey为节点合并输出

实现方案

你之前使用JSON_MODIFY失败的核心原因是没有用JSON_QUERY包裹JSON格式的ConfigValue,导致JSON_MODIFY默认把内容识别为普通字符串进行转义,无法输出嵌套的JSON结构。

以下是兼容SQL Server 2016及以上版本的通用实现,假设你的表名为ConfigTable,可替换为实际表名:

DECLARE @MergedJson NVARCHAR(MAX) = '{}'

SELECT @MergedJson = JSON_MODIFY(
    @MergedJson,
    CONCAT('$."', ConfigKey, '"'), -- 动态拼接JSON路径,加引号兼容带特殊字符的ConfigKey
    JSON_QUERY(ConfigValue) -- 标记内容为JSON对象,避免被转义
)
FROM ConfigTable
WHERE ConfigKey IN ('employee', 'manager') -- 此处修改为你要选中的ConfigKey列表

SELECT @MergedJson AS FinalJson

效果验证

  • 当WHERE条件为ConfigKey IN ('employee', 'manager')时,输出和你给出的示例1完全一致
  • 当WHERE条件为ConfigKey = 'employee'时,输出和你给出的示例2完全一致

其他可选方案(SQL Server 2017及以上)

如果使用的是SQL Server 2017及更高版本,也可以用FOR JSON语法实现,写法更简洁:

SELECT JSON_QUERY(ConfigValue) AS [employee]
FROM ConfigTable
WHERE ConfigKey = 'employee'
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER

该写法适合选中的ConfigKey数量固定的场景,动态选中多个Key时优先使用第一种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:06:04