在Cosmos DB中使用关键字作为别名

我想使用关键字order作为SELECT子句中表达式的别名。

要进行复制,请将以下内容插入Cosmos DB集合中。

{
    "name": "John Doe"
}

以下查询工作正常

SELECT 
    c.name,c["order"],c["order"] ?? "defaultvalue",c["order"] ?? "defaultvalue" as order2
FROM c
WHERE c.name = 'John Doe'

此操作失败,因为我使用了关键字order

SELECT 
    c.name,c["order"] ?? "defaultvalue" as order2,c["order"] ?? "defaultvalue" as order
FROM c
WHERE c.name = 'John Doe'

我尝试使用方括号,双引号和单引号将别名括起来,如SQL Server允许的那样。

nanhuathyy98 回答:在Cosmos DB中使用关键字作为别名

据我所知,cosmos db仅支持查询使用保留字的字段名称。

SELECT c["top"] FROM c

恐怕您不能在别名上使用保留字,因为它不能正确地识别为平滑的SQL语句。此外,我还认为这种方法会引起歧义,这在SQL中是极不推荐的。

,

有点难看,但这种语法适用于 Cosmos:

SELECT VALUE {'order':c["order"]} FROM c WHERE c.name='John Doe'

和普通 SQL 大致等价:

SELECT c.[order] as [order] FROM c WHERE c.name='John Doe'
本文链接:https://www.f2er.com/3058186.html

大家都在问