为什么我的 SQL SELECT 从有效的 JSON 列返回所有 NULL 值?

问题描述 投票:0回答:1

我在 SQL Server 数据库中有一个表,其中的列包含有效的 json 数据。

字段中的数据示例:[{"max": 0, "min": 0, "price": 1000}]

列数据类型为 nvarchar(max)。

代码:

从 postgres.warranty_terms 中选择 json_value(odometer_surcharges, '$.price') AS 价格

问题是它为每条记录返回 NULL 值。

sql json t-sql select
1个回答
0
投票

由于您没有提供任何数据和/或表结构,这是一个如何从列读取 json 的示例:

DECLARE @t TABLE (id INT IDENTITY(1,1) not null, rawjson nvarchar(2000) NULL)
INSERT INTO @t VALUES
('[{"max": 0, "min": 0, "price": 1000}]')
,(null)
,('[{"max": 10, "min": 1, "price": 2.30}]')

SELECT id, [Max], [min], price
FROM @t t
CROSS APPLY OPENJSON(t.rawjson) WITH ([max] int, [min] int, price decimal(8,3))

结果:

id 最大 分钟 价格
1 0 0 1000.000
3 10 1 2.300
© www.soinside.com 2019 - 2024. All rights reserved.