我在数据库中有一个表,其中一列包含一个 JSON 字符串。我需要查询这个字符串。
问题在于 JSON 字符串中的某些键名称是数字,而 SQL Server 拒绝允许我查询它们。
JSON 字符串示例:{ "1": "abc", "2": "bcd" }
当我尝试执行以下代码时,出现错误:
SELECT
JSON_QUERY(JSONMessage, '$.1') as test
FROM [table]
错误:
Msg 13607, Level 16, State 4, Line 2
JSON path is not properly formatted. Unexpected character '1' is found at position 2.
我尝试过以下方法:
JSON_QUERY(JSONMessage, '$.''1''')
JSON_QUERY(JSONMessage, '$."1"')
JSON_QUERY(JSONMessage, '$.[1]')
JSON_QUERY(JSONMessage, '$.{1}')
JSON_QUERY(JSONMessage, '$.["1"]')
JSON_QUERY(JSONMessage, '$."[1]"')
..没有任何积极的结果。
这有什么技巧吗?
应该使用 JSON_VALUE:
SELECT
JSON_VALUE(JSONMessage, '$."1"') as test
FROM [table]
感谢杰罗恩·莫斯特