SQL case when 遇到null值时的解决办法

来源:互联网 发布:55开衣服的淘宝店 编辑:程序博客网 时间:2024/06/16 04:14

最近刚刚入职,在熟悉项目的流程,熟悉数据库。在对数据库进行查询时,遇到了一个问题:查询结果中的某一列需要判断另一列是否为空的来确定值,自然就想到了case when,于是写出了下面的SQL(其他部分省略):
(case date when nu ll then 'A' else 'B' end) 'C'
结果不论date是否为null,C这一列的值的结果都是 B,也就是判断的都为非null(即使真的是null)
于是我换成了下面这种写法:
(case when date is nu ll then 'A' else 'B' end) 'C'
结果得到了正确的结果。
至于为什么会这样,我个人认为是SQL语法规定的一个小bug吧,至于是不是这样我现在能查到的资料中没有具体的解释,希望以后能深究,也希望知道的朋友可以帮忙解释一下~