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

SQL Server中将表内JSON格式单列拆分为多列的问题咨询

SQL Server JSON列拆分解决方案

适用版本

仅支持SQL Server 2016及以上版本,该范围版本原生内置JSON解析相关函数

方案1:JSON_VALUE 直接取值(适合简单JSON结构)

直接通过JSON路径提取对应字段值,示例代码如下,请将代码中的YourTableName替换为实际表名,JsonColumn替换为存储JSON数据的实际列名:

-- 若列中存储的是未转义的原生JSON,直接使用该语句
SELECT
  JSON_VALUE(JsonColumn, '$.Date') AS Date,
  CAST(JSON_VALUE(JsonColumn, '$.Value') AS DECIMAL(18,1)) AS Value
FROM YourTableName;

方案2:OPENJSON 批量解析(适合多字段、复杂JSON结构)

通过OPENJSON将JSON字段直接映射为表列,多字段查询时效率更高:

SELECT
  j.Date,
  CAST(j.Value AS DECIMAL(18,1)) AS Value
FROM YourTableName t
CROSS APPLY OPENJSON(t.JsonColumn)
WITH (
  Date VARCHAR(10) '$.Date',
  Value DECIMAL(20,10) '$.Value'
) j

特殊场景处理:JSON存在HTML转义

如果你的列存储的是转义后的JSON(即双引号被转义为",和你给出的取值示例一致),需要先替换转义字符再解析:

SELECT
  JSON_VALUE(REPLACE(JsonColumn, '"', '"'), '$.Date') AS Date,
  CAST(JSON_VALUE(REPLACE(JsonColumn, '"', '"'), '$.Value') AS DECIMAL(18,1)) AS Value
FROM YourTableName;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:51:03