mysql男女数据置换

面试的时候,会考一些逻辑题目或者说考你对mysql的理解程度,

之前我也被问到过这样的一个问题

比如举个例子(没有错误的数据),1-男,2-女,用几句mysql才能实现男女数据置换?

//一开始我是这么想的,先让表的内所有sex+1,然后让sex=3的数据全部-2,两句
update class set sex=sex+1;
update class set sex=sex-2 where sex=3;

但是有只使用一条update语句

update class set sex=if(sex=1,2,1);
//or  if语句做为表达式使用,语法格式如下:IF(expr1,expr2,expr3) 
update class set sex=case sex when 1 then 2 else 1 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_grade from 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
赞赏

微信赞赏支付宝赞赏

发表评论