首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的Case语句中,它总是返回else值

在我的Case语句中,它总是返回else值
EN

Stack Overflow用户
提问于 2019-05-28 14:38:05
回答 1查看 27关注 0票数 0

在我的查询中,我使用了一个case语句,它总是返回else值,这里是查询:

代码语言:javascript
复制
CASE WHEN CC.IBUS_CODE = null then to_char(vDQ.COA_CAT_ID)  ELSE (vDQ.COA_CAT_ID ||' | '||CC.IBUS_CODE) end AS COA_CAT_ID

here is the output 
COA_CAT_ID
4800 | 
4700 | 31113
4600 | 31112
4500 | 31111
4900 | 


Expected output 
  COA_CAT_ID
    4800 
    4700 | 31113
    4600 | 31112
    4500 | 31111
    4900  
EN

回答 1

Stack Overflow用户

发布于 2019-05-28 16:23:07

case表达式的问题是,您正在检查等于null的列-这是不正确的。= null是返回null而不是true或false的东西,这意味着您的case语句将始终放入else部分。

相反,您需要使用is null,例如:

代码语言:javascript
复制
CASE WHEN CC.IBUS_CODE is null
          then to_char(vDQ.COA_CAT_ID)
     ELSE (vDQ.COA_CAT_ID ||' | '||CC.IBUS_CODE)
END AS COA_CAT_ID

演示问题和修复的Here's a db<>fiddle

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

https://stackoverflow.com/questions/56336308

复制
相关文章

相似问题

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