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


    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后面,相当于一个表达式

  • 相关阅读:
    同一个表中今天的数据与昨天的数据合并,并制定列
    ◎UrlEncode 与 ◎UrlDeCode对应Lotusscript
    ExtJS初级教程之ExtJS Grid(三)
    ExtJS初级教程之ExtJS Tree(一)
    Collections常用的静态方法浅析之排序:sort(List list)
    ExtJS初级教程之ExtJS Tree(三)
    不能被复制的字符:'/u0000'
    ExtJS初级教程之ExtJS Tree(二)
    urlwriterfilter地址栏的伪装
    ExtJS初级教程之ExtJS Grid(一)
  • 原文地址:https://www.cnblogs.com/tan-y-q/p/10480992.html
Copyright © 2020-2023  润新知