我在 SQL Server 数据库中有一个表,其中的列包含有效的 json 数据。
字段中的数据示例:[{"max": 0, "min": 0, "price": 1000}]
列数据类型为 nvarchar(max)。
代码:
从 postgres.warranty_terms 中选择 json_value(odometer_surcharges, '$.price') AS 价格
问题是它为每条记录返回 NULL 值。
由于您没有提供任何数据和/或表结构,这是一个如何从列读取 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 |