首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套的Case语句-提取错误的值

嵌套的Case语句-提取错误的值
EN

Stack Overflow用户
提问于 2020-06-11 05:22:08
回答 1查看 56关注 0票数 0

以下是我的语法/问题

代码语言:javascript
复制
,CASE   WHEN nullif(ltrim(A),'') IS NOT NULL OR nullif(ltrim(B),'') IS NOT NULL THEN NULL                                                                                       
        WHEN nullif(ltrim(C),'') IS NOT NULL        THEN (
                                                        CASE    WHEN nullif(MM,'') IS NOT NULL THEN MM
                                                                WHEN NN IS NOT NULL THEN XX                                                     
                                                                WHEN NN IS NULL THEN concat(UPPER(YY), ' ', UPPER(XX))      
                                                                END
                                                        )
        WHEN nullif(ltrim(D),'') IS NOT NULL OR nullif(ltrim(E),'') IS NOT NULL THEN concat(UPPER(XX), ' ', UPPER(YY))          
        ELSE ' '
        END as 'Data_Item'

我们有一系列的陈述要评估。如果字段AB不为空,则拉取NULL

如果字段C不为空,那么我们计算嵌套的case语句,这就是我的代码有问题的地方。

如果字段C不是空的,我们应该计算字段MM,如果MM不是空的,我们应该返回MM (这是我应该得到的,但我没有得到)。

我们继续求值,如果NN不为空,则拉出XX

如果NN为null,我们将连接YY space XX

最后,如果字段D不为空或字段E不为空,那么我们将连接字段XX space YY

否则,我们只返回一个空格,然后结束

--

简而言之,这是一个半复杂的序列case语句,如果第二个场景为真,我们必须计算3到4个嵌套语句。直到我们找到真相。

无论出于什么原因,我的数据总是返回最后一条语句(D为true),而不是嵌套的语句。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-11 05:55:59

这是你的简化案例:

代码语言:javascript
复制
CASE   
   WHEN A <> '' OR B <> ''
      THEN NULL                                                                                    
   WHEN C <> ''
      THEN CASE    
              WHEN MM <> '' THEN MM
              WHEN NN IS NOT NULL THEN XX                                                     
              WHEN NN IS NULL THEN Concat(Upper(YY), ' ', Upper(XX))     
           END
   WHEN D <> '' OR E <> ''
      THEN Concat(Upper(XX), ' ', Upper(YY))          
   ELSE ' '
END

似乎符合你的逻辑..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62313348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档