Cosmos DB嵌套数组查询报错:无法提取boardgame rank值
问题分析与解决方法
错误原因
value是Cosmos DB SQL的保留关键字,直接以r.value的形式引用字段会导致语法解析器误判,触发SC1001语法错误。即使尝试用方括号,若格式不正确(比如写成r.[value])也无法生效。
正确实现
使用方括号包裹保留关键字value,采用r["value"]的格式来引用字段,修改后的查询语句如下:
SELECT g.name, r["value"] AS rank FROM Games g JOIN r IN g.statistics.rankings WHERE r.name = 'boardgame'
该语句会正确提取boardgame对应的value值并别名为rank,输出格式完全符合需求:
{"name": "Alpha","rank": 746}
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

