sql 关于case when的两种用法
最近做项目关于数据迁移部分了解到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部分将不会执行。
chilx: 用不用都行, 用了也不起作用, 可以去掉
Big蓝胖: 方式一那里,static字段不能用@Autowired注入吧?
qq1448901135: 有用,谢谢大佬
woyujiezhen: 今天阅读SpringBoot源码的时候注意到loadBeanDefinitionsForBeanMethod这个方法里面有一个判断是否是static:static @Bean method 我突然就想起来2年前刚工作的时候需要静态bean注入的方式完成某个功能,结果我以为没这个功能实现,然后还是带我的老大给我写的
JFS_Study: 有没有可能,我是说可能啊,第一种方法直接注入的就可以调用