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

如何从SQL Server的CarDetails表JSON字段提取所有车型价格?

提取JSON中所有唯一价格的SQL解决方案

针对你的CarDetails表结构和嵌套JSON数据,可以通过多层OPENJSON结合CROSS APPLY动态解析所有品牌、车型下的价格,最终去重得到结果。以下是完整的SQL语句:

SELECT DISTINCT j3.Price
FROM CarDetails
CROSS APPLY OPENJSON(JSONData, '$.fuel') AS j1  -- 解析fuel层,获取所有品牌的JSON对象
CROSS APPLY OPENJSON(j1.value, '$.Model') AS j2  -- 解析每个品牌下的Model层,获取所有车型的数组
CROSS APPLY OPENJSON(j2.value) WITH (
    Price VARCHAR(20) '$.Price'  -- 解析每个车型数组中的Price字段
) AS j3
ORDER BY j3.Price;  -- 可选:按价格排序

代码说明:

  • 第一层OPENJSON(JSONData, '$.fuel'):遍历JSON中fuel节点下的所有品牌(比如示例中的Maruti),返回每个品牌的键(品牌名)和对应的值(品牌的JSON内容)。
  • 第二层OPENJSON(j1.value, '$.Model'):基于每个品牌的JSON内容,遍历Model节点下的所有车型(比如LXI、VXI),返回每个车型的键(车型名)和对应的值(价格数组)。
  • 第三层OPENJSON(j2.value) WITH (...):解析每个车型的价格数组,提取数组中每个元素的Price字段。
  • DISTINCT关键字:确保最终结果只保留唯一的价格值。

可选优化:

如果需要将价格转换为数值类型(方便后续计算),可以修改SELECT部分:

SELECT DISTINCT CAST(j3.Price AS BIGINT) AS Price
FROM CarDetails
-- 后续CROSS APPLY部分同上
ORDER BY Price;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:45:56