一、if分支判断语句
基本语法
if在Mysql中有两种基本用法
1、 用在select查询当中,当做一种条件来进行判断
基本语法:if(条件,为真结果,为假结果)
2、用在复杂的语句块中(函数/存储过程/触发器)
if 条件表达式 then
满足条件要执行的语句;
end if;
复合语法
复合语法:代码的判断存在两面性,两面都有对应的代码执行。
基本语法:
if 条件表达式 then
满足条件要执行的语句;
else
不满足条件要执行的语句;
//如果还有其他分支(细分),可以在里面再使用if
If 条件表达式 then
//满足要执行的语句
end if;
end if;
二、case when判断语句
1、case 函数用法一,switch case的效果
case 要判断的字段或者表达式
when 常量1 then 要显示的值1或者语句1;
when 常量2 then 要显示的值2或者语句2;
else 要显示的值n或者语句n;
end
法一:常量对应case后面的字段或表达式,when接一个常量,将常量与case后面的字段进行比较。
2、case 函数用法二,多个if
case
when 条件1 then 要显示的值或者语句
else 要显示的值或者语句
end
法二:when后面直接跟条件进行判断。其中,可以不写else但是一定要有end ,没有else如果不满足条件会以null填充
举例:
select s_name,
case
when grade > 90 then '优秀'
when grade > 80 then '良好'
when grade > 70 then '一般'
when grade >= 60 then '及格'
when grade < 60 then '不及格'
else '无效成绩'
end as 'level'
from result;
如果else不写,当grade=null时,最后该条结果会为name,null
如果else存在,当grade=null时,最后该条结果会为name,无效成绩