我第一次在数据库中使用JSON值。我想使用JSON_VALUE或JSON_QUERY来返回JSON的值或部分,但无论是谁设计的,都在键中使用了"-",这是一个非法值。研究表明,我需要使用FOR JSON来转义它,但我不知道怎么做。
尝试查询:
select
xt.ID,
JSON_QUERY(xt.JSON_DB_VALUE, '$.CusomterQuery.Details.cust-names') as JSON_WITH_NAMES,
JSON_VALUE(xt.JSON_DB_VALUE, '$.CusomterQuery.Details.cust-names.first-name') as FIRST_NAME
from EXAMPLE_TABLE xt
收到错误:
JSON路径格式不正确。在位置xx处发现意外的字符"-"。
感谢
感谢Zhorov的快速评论,这是一个非常简单的解决方案-在带有非法字符的路径部分周围添加引号。
select
xt.ID,
JSON_QUERY(xt.JSON_DB_VALUE, '$.CusomterQuery.Details."cust-names"') as JSON_WITH_NAMES,
JSON_VALUE(xt.JSON_DB_VALUE, '$.CusomterQuery.Details."cust-names"."first-name"') as FIRST_NAME
from EXAMPLE_TABLE xt