mysql中if语句的使用
参考地址:https://www.php.cn/mysql-tutorials-417851.html
1 IF表达式
- IF(expr1,expr2,expr3)
如果expr1是true,则返回expr2,否则返回expr3
select *,if(sva=1,"男","女") as ssva from taname where sva !='';
从thanam表中sva不为空的条件下,sva等于1时返回男,否则返回女。
2 CASE WHEN
select CASE sva WHEN 1 THEN '男‘ ELSE END as ssva
from thanam where sva !='';
从thanam表中sva不为空的条件下,sva等于1时返回男,否则返回女。
3 IFNULL
- IFNULL(expr1,expr2)
expr1不为NULL ,则返回值为expr1,否则返回值为expr2。IFNULL返回的是数字或者是字符串,具体情况取决于具体的语境。
4 IF ELSE 做为流程控制语句
IF condition THEN -- 当condition成立时,执行THEN之后的语句statement,其中ccondition是一个条件表达式
statement
[ELSEIF condition THEN] -- 否则判断其他分支,执行其他分支
statement
.....
[ELSE statement] END IF; -- 最后以END IF; 结束
例如,建立一个存储过程,该存储过程通过学生学号(student_no)和课程编号(course_no)查询其成绩(grade),返回成绩和成绩的等级,成绩大于90分的为A级,小于90分大于等于80分的为B级,小于80分大于等于70分的为C级,依次到E级。那么,创建存储过程的代码如下:
create procedure dbname.proc getGrade(
stu no varchar(20),
cour_no varchar(10)
) BEGIN declare stu grade float;
select grade into stu_gradefrom grade where student_no=stu_no and_course no=cour_no;
if stu_grade>=90 then
select stu grade,"A'; elseif stu_grade<90 and stu_grade>=80 then
select stu_grade , "B';elseif stu_grade<80 and stu_grade>=70 then
select stu_grade,'C';elseif stu_grade70 and stu_grade>=60 then
select stu_grade,'D';else
select stu_grade,'E';end if;END