JSON包含sql关键字时无法获取结果

时间:2019-05-01 17:41:50

标签: sql azure azure-cosmosdb cosmos

我正在尝试在cosmos db上获取符合特定条件的记录,但是我一直无法这样做,好像cosmos抱怨左走了,我一直找不到替代方法。

这是我一直试图通过以下方式获取记录的查询:

SELECT * 
FROM Rx c 
where c.tenantId = '5c6cb2d77c1c2edc001b9007' AND 
      c.left.series ='Clariti 1 Day Toric 30pk'

下面是一个示例JSON文档

{
"startDate": null,
"expirationDate": null,
"left": {
    "seriesId": "54b80bae7558391d0044ffd7",
    "productId": null,
    "productName": null,
    "series": "Clariti 1 Day Toric 30pk"
},
"right": null,
"tenantId": "5c6cb2d77c1c2edc001b9007"
}

这是返回的错误: 语法错误,“左”附近的语法不正确。

1 个答案:

答案 0 :(得分:1)

查询嵌套对象时,查询应使用 [] 而不是 dot

方括号符号使您可以访问包含特殊字符的属性

SELECT * 
FROM Rx c 
where c.tenantId = '5c6cb2d77c1c2edc001b9007' AND 
      c["left"]["series"] ='Clariti 1 Day Toric 30pk'

演示

enter image description here