sql 关于case when的两种用法

最近做项目关于数据迁移部分了解到case when 的两种用法

第一种

case 字段 
  when 条件 then 结果 
  else 结果 
end; 

 

第二种  

case 
  when 条件 then 结果 
  when 条件 then 结果 
  else 结果 
end; 

当处理null字段是要用第二种方法,第一种方法查询的结果是错的.

例如 有一张user表 含有两个字段user_id和 user_name

sql 关于case when的两种用法_第1张图片

需求: 当user_name为null时 给user_name赋值李四

第一种结果

SELECT
 CASE user_name 
   WHEN NULL THEN '李四' 
   ELSE user_name 
 END AS userName 
FROM 
  USER;

    sql 关于case when的两种用法_第2张图片

第二种结果

SELECT
 CASE
   WHEN user_name IS NULL THEN '李四' 
   ELSE user_name 
 END AS userName 
FROM
  USER;

    sql 关于case when的两种用法_第3张图片

    大家可以根据需求选择合适的方法使用

    注:Case函数只返回第一个符合条件的值,剩下的Case部分将不会执行。

你可能感兴趣的:(数据库)