case when then 中判断null的方法

时间:2025-04-08 17:35:19

文章目录

  • 一、 MYSQL 中使用case when then 判断is null的方法
  • 二、 MYSQL 中使用case when then 判断 null的方法

一、 MYSQL 中使用case when then 判断is null的方法

eg:统计用户表实名认证(即姓名和证件号不为空)的用户数量及总用户数量

错误使用:
SELECT  ifnull(sum( CASE WHEN user_name IS NOT NULL and user_card IS NOT null THEN 1 ELSE 0 END ) ,0) rzNum,
count(distinct user_id ) totalNum
FROM user_info 
正确使用:
SELECT  ifnull(sum( CASE WHEN NULLIF(user_name ,'') IS NOT NULL and  NULLIF(user_card  ,'')IS NOT null THEN 1 ELSE 0 END ) ,0) rzNum,
        count(distinct user_id ) totalNum
        FROM  user_info 

二、 MYSQL 中使用case when then 判断 null的方法

错误方法:
CASE columnName WHEN null THEN 0 ELSE columnName END
正确方法:
CASE WHEN columnName is null THEN 0 ELSE columnName END