欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

50_流程控制函数-case结构

程序员文章站 2022-05-17 16:16:42
case函数的使用一:switch case 的效果 /* Java中 switch(变量或表达式){ case 常量1:语句1:break; ... default:语句n;break; } MySQL中 case 要判断的字段或表达式 #将switch替换成case when 常量1 then ......

case函数的使用一:switch case 的效果

/*

java中

switch(变量或表达式){

    case 常量1语句1:break;

    ...

    default:语句n;break;

}

mysql中

case 要判断的字段或表达式         #将switch替换成case

when 常量1 then 要显示的值1或语句1;    #将case替换成when,将:替换成then

when 常量2 then 要显示的值2或语句2;

...

else 要显示的值n或语句n;           #else替换为default,表示默认情况

end                 #判断的是值

*/

/*案列:查询员工的工资,要求:

部门号=30,显示的工资为1.1倍

部门号=40,显示的工资为1.2倍

部门号=50,显示的工资为1.3倍

其他部门,显示的工资为原工资

*/

select salary 原始工资,department_id,

case department_id

when 30 then salary*1.1

when 40 then salary*1.2

when 50 then salary*1.3

else salary

end as 新工资

from employees;

case函数的使用二:类似于 多重if

/*

java中:

if(条件1){

  语句 1;

}else if(条件二){

  语句2:

}

...

else{

  语句n;

}

mysql中:

case

when 条件1 then 要显示的值1或语句1

when 条件2 then 要显示的值2或语句2

...

else 要显示的值n或语句n

end                   #判断的是区间

*/

#案列:查询员工的工资情况

如果工资>20000,显示‘a’级别

如果工资>15000,显示‘b'级别

如果工资>10000,显示’c'级别

否则,显示‘d’级别

 

select salary,
case
when salary>20000 then 'a'
when salary>15000 then 'b'
when salary>10000 then 'c'
else 'd'
end as grade
from employees;

 

总结:case一般要搭配着查询来用,即:要放在关键字select后面,相当于一个表达式