最近做项目关于数据迁移部分了解到case when 的两种用法
第一种
case 字段
when 条件 then 结果
else 结果
end;
第二种
case
when 条件 then 结果
when 条件 then 结果
else 结果
end;
当处理null字段是要用第二种方法,第一种方法查询的结果是错的.
例如 有一张user表 含有两个字段user_id和 user_name
需求: 当user_name为null时 给user_name赋值李四
第一种结果
SELECT
CASE user_name
WHEN NULL THEN '李四'
ELSE user_name
END AS userName
FROM
USER;
第二种结果
SELECT
CASE
WHEN user_name IS NULL THEN '李四'
ELSE user_name
END AS userName
FROM
USER;
大家可以根据需求选择合适的方法使用
注:Case函数只返回第一个符合条件的值,剩下的Case部分将不会执行。