怎么把两个JSON格式的数据分别对应的value值给提取出来吗SqlServer

{"parameter_list": [{"stage": "第2段", "speed": "1000", "use_time": "70"}, {"stage": "第3段", "speed": "1000", "use_time": "70"}]}

FineReport Ccc 发布于 2024-8-19 15:19
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-8-19 15:27
  • Ccc Ccc(提问者) 我的JSON跟她的不一样 我的另外一段用逗号隔开了
    2024-08-19 15:55 
最佳回答
0
snrtuemcLv8专家互助
发布于2024-8-19 15:28

参考下

在SQL Server中,可以使用内置的OPENJSON函数来提取JSON格式的数据。以下是一个简单的例子,演示如何从一个包含JSON的字符串中提取数据:

假设我们有一个表JsonData,其中有一列JsonContent存储了JSON格式的数据。

CREATE TABLE JsonData (

    Id INT PRIMARY KEY,

    JsonContent NVARCHAR(MAX)

);

我们可以插入一条带有JSON的数据:

INSERT INTO JsonData (Id, JsonContent)

VALUES (1, '{"name": "John", "age": 30, "city": "New York"}');

现在,我们要提取这个JSON中的数据。可以使用OPENJSON函数:

SELECT *

FROM OpenJson(JsonData.JsonContent)

WITH (

    name VARCHAR(100) '$.name',

    age INT '$.age',

    city VARCHAR(100) '$.city'

);

这将返回一个结果集,展示name,age和city字段的值。

如果JSON数据是数组格式的,可以使用OPENJSON配合WITH子句来指定如何提取数组中每个元素的数据。例如:

INSERT INTO JsonData (Id, JsonContent)

VALUES (2, '[{"name": "Jane", "age": 25, "city": "London"}, {"name": "Doe", "age": 22, "city": "Paris"}]');

提取JSON数组中的数据:

SELECT *

FROM OpenJson(JsonData.JsonContent)

WITH (

    name VARCHAR(100) '$.name',

    age INT '$.age',

    city VARCHAR(100) '$.city'

)

WHERE [key] IS NOT NULL;

这里[key]列表示数组中元素的索引,当[key]为NULL时表示提取的是整个数组。结果集将包含数组中每个对象的name,age和city。

最佳回答
0
CD20160914Lv8专家互助
发布于2024-8-19 15:59

sql server数据库:

DECLARE @json NVARCHAR(MAX) = '{"parameter_list": [{"stage": "第2段", "speed": "1000", "use_time": "70"}, {"stage": "第3段", "speed": "1000", "use_time": "70"}]}'

SELECT stage

FROM OPENJSON(@json, '$.parameter_list')

WITH (

    stage VARCHAR(50) '$.stage'

)

stage改成你要的字段

image.png

  • 4关注人数
  • 98浏览人数
  • 最后回答于:2024-8-19 15:59
    请选择关闭问题的原因
    确定 取消
    返回顶部