我有一个表,其中包含一个用作 JSON 的 VARCHAR 列。列中有以下数据:{"Key-Name": "A value."}.
如果我使用 JSON_VALUE 通过下面的查询在此列上进行过滤,我会收到以下错误:“JSON 路径的格式不正确。在位置 5 处发现了意外字符 '-'。”。
SELECT *
FROM [MyTable]
WHERE JSON_VALUE([Value], N'$.Key-Name') = 'A value'
Run Code Online (Sandbox Code Playgroud)
当键中包含特殊字符时,如何使用 JSON_VALUE 函数检索值?
您可以使用双引号来转义键名:
SELECT *
FROM [MyTable]
WHERE JSON_VALUE([Value], N'$."Key-Name"') = 'A value'
Run Code Online (Sandbox Code Playgroud)