gpt4 book ai didi

azure-cosmosdb - if 语句的 CosmosDB SQL 查询语法

转载 作者:行者123 更新时间:2023-12-01 11:16:37 25 4
gpt4 key购买 nike

我试图找到在 Azure ComsmosDB SQL 查询中执行 If/Case 类型语句的正确语法。这是我拥有的文件

{
"CurrentStage": "Stage2",
"Stage1": {
"Title": "Stage 1"
},
"Stage2": {
"Title": "Stage 2"
},
"Stage3": {
"Title": "Stage 3"
}

}

我想要做的是创建一个看起来像的查询
        Select c.CurrentStage, 
if (CurrentStage == 'Stage1') { c.Stage1.Title }
else if (CurrentStage == 'Stage2') { c.Stage2.Title }
else if (CurrentStage == 'Stage3') { c.Stage3.Title } as Title
From c

显然,我拥有的文档和查询比这个复杂得多,但这让您对我正在尝试做的事情有了大致的了解。根据文档中的其他一些字段,我在选择中有 1 个字段是可变的。

最佳答案

如果您需要大量重用此函数,Jay Gong 建议的 udf 可能更适合使用,但您可以使用三元运算符语法在没有 udf 的情况下执行此操作。

例如:

select
c.CurrentStage = 'stage1' ? c.Stage1.Title
: c.CurrentStage = 'stage2' ? c.Stage2.Title
: c.CurrentStage = 'stage3' ? c.Stage3.Title
: 'your default value should you wish one'
as title
from c

建议:提供者 SQL 解决方案比 UDF 的优势在于它是自包含的,并且在执行之前不需要在服务器上设置逻辑。另请注意,如果逻辑完全存储在客户端应用程序中,而不是像 UDF 案例那样在客户端和服务器之间共享,则逻辑版本控制会更简单。 UDF 确实有它的用途(例如:跨查询重用),但通常最好不要使用。

关于azure-cosmosdb - if 语句的 CosmosDB SQL 查询语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50004677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com