在日常开发中
有些需求我们无法避免的要在SQL语句中进行类似于Java中if判断的操作,那SQL语句是否可以满足呢?
本文将介绍SQL条件判断关键字case when的基本用法
基本语法
case x when y then z else m end
乍一看看不懂没关系,我们把它拆分开解释
case x 意思就是设置一个参数,x可以是一个数据库字段,也可以是一个dao层传递的参数,也可以是一个固定值
when y 意思就是给设定的x参数设置条件
then z 就是当x满足y条件之后做的操作,类似于Java中if条件为true的情况
else m 当x不满足y条件时的操作,类似于Java中的if条件为false的else代码块
end 代表本case when语句结束,每个case when语句都要带有end 否则sql语句报错
整体解释就是设置一个x参数,当x满足y时执行z 不满足时执行m(x可忽略,原因请看下文中的举例.)
应用举例
1.用于SELECT之后,FROM之前,判断要查询的字段
假设dao传递了一个type参数,查询User表中的password字段,并且当type为1时 查询帐号,当type为2时,查询用户id
SELECT PASSWO