Mysql case when 如何做空值与非空判断

在对数据库进行查询时,遇到了一个问题:查询结果中的某一列需要判断另一列是否为空的来确定值,自然就想到了case when,于是写出了下面的SQL(其他部分省略):

(case data when null then 'A' else 'B' end) 'C'

结果不论date是否为null,C这一列的值的结果都是 B,也就是判断的都为非null(即使真的是null) 于是我换成了下面这种写法:

(case when data is null then 'A' else 'B' end) 'C'

结果可以实现想要的需求,如果是想做非null判断的话,则这样写:

(case when data is not null then 'A' else 'B' end) 'C'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,使用CASE WHEN语句处理空值有一些特殊之处。引用提到,null的判断不能使用=进行判断,而是要使用IS或IS NOT。所以,在处理空值的时候,可以使用以下的方式: CASE WHEN column IS NULL THEN 'A' ELSE 'B' END 在这个例子中,当column为时,返回'A',否则返回'B'。需要注意的是,在判断空值时,要使用IS NULL或IS NOT NULL来进行判断,而不是使用=或<>。引用中提到,CASE WHEN语句类似于Java中的switch语句,可以根据条件灵活地选择不同的值。 另外,引用中的例子中,使用了(case data when null then 'A' else 'B' end) 'C'的语法是有问题的,因为case后面的值不能直接与null进行比较。正确的写法应该是使用IS NULL来判断空值,如下所示: CASE WHEN data IS NULL THEN 'A' ELSE 'B' END AS C 这样就可以将判断结果命名为C,并根据是否为来赋予对应的值。希望这个解答能够解决你的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQL中的case when 中对于NULL值判断的坑](https://blog.csdn.net/weixin_30963127/article/details/113301033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Mysql case when 如何空值与非判断](https://blog.csdn.net/weixin_45887275/article/details/122476118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值