Sql server 如何在JSON_值中允许特殊字符

Sql server 如何在JSON_值中允许特殊字符,sql-server,tsql,Sql Server,Tsql,我有一个表,其中有一个VARCHAR列用作JSON。该列中包含以下数据:{“键名”:“一个值”。} 如果使用JSON_值在下面的查询中筛选此列,则会出现以下错误:“JSON路径格式不正确。在位置5处发现意外字符“-” 当键中有特殊字符时,如何使用JSON_VALUE函数检索值?可以使用双引号转义键名: SELECT * FROM [MyTable] WHERE JSON_VALUE([Value], N'$."Key-Name"') = 'A value' 对于任何偶然发现这一点的人,引号还将

我有一个表,其中有一个VARCHAR列用作JSON。该列中包含以下数据:
{“键名”:“一个值”。}

如果使用JSON_值在下面的查询中筛选此列,则会出现以下错误:“JSON路径格式不正确。在位置5处发现意外字符“-”


当键中有特殊字符时,如何使用JSON_VALUE函数检索值?

可以使用双引号转义键名:

SELECT *
FROM [MyTable]
WHERE JSON_VALUE([Value], N'$."Key-Name"') = 'A value'

对于任何偶然发现这一点的人,引号还将处理JSON在键名中也包含
$
的情况。
SELECT *
FROM [MyTable]
WHERE JSON_VALUE([Value], N'$."Key-Name"') = 'A value'