我创建了一个包含25个列的SQL Server表格,其中一个列实际上是JSON文本,以nvarchar(max)的形式存储。
现在我需要能够查询这个JSON列并解析出其中的各种属性。我尝试将JSON_VALUE应用于我的列,但是似乎做错了什么;我的查询运行了,但所有值都返回NULL。
JSON本身看起来像:
我使用的SQL语句是:
现在我需要能够查询这个JSON列并解析出其中的各种属性。我尝试将JSON_VALUE应用于我的列,但是似乎做错了什么;我的查询运行了,但所有值都返回NULL。
JSON本身看起来像:
[
{
"lineName":"GHjr",
"pipeDiameter":"12",
"pipeLength":"52000",
"pressure":"15",
"volume":"107"
},
{
"lineName":"Ks3R",
"pipeDiameter":"9",
"pipeLength":"40000",
"pressure":"15",
"volume":"80"
}
]
我使用的SQL语句是:
select
DOC_ID, LINE_SPECS,
JSON_VALUE(LINE_SPECS, '$.lineName') as line_name,
JSON_VALUE(LINE_SPECS, '$.pipe_Diameter') as diameter
from dbo.MY_TEST_DOCS
where ISJSON(LINE_SPECS) > 0
and len(LINE_SPECS) > 3
然而,我的两个“已解析”列都返回空值。我该如何从此列解析出这五个属性?
JSON_VALUE
设置为strict
模式,以查看是否出现任何错误。默认模式是lax
,不会产生错误,只会返回NULL
。https://learn.microsoft.com/en-us/sql/relational-databases/json/json-path-expressions-sql-server 此外,我认为$.pipe_Diameter
应该是$.pipeDiameter
。 - SS_DBA