美文网首页
【MySQL】流程控制函数 if和case when

【MySQL】流程控制函数 if和case when

作者: 宅家学算法 | 来源:发表于2022-07-08 09:43 被阅读0次

    leetcode 1873,查询语句中存在判断赋值的字段,第一个进入脑海的方案就是case when,解题后发现mysql的if也是很好

    力扣 1873

    题解

    select employee_id, 
    case when mod(employee_id, 2)>0 and LEFT(name, 1) <> 'M' then salary else 0 end bonus 
    from Employees order by employee_id asc;
    
    select employee_id, if(employee_id % 2 != 0 and left(name, 1) != 'M', salary, 0) as bonus
    from Employees
    order by employee_id;
    

    case when解释

    (1)
    CASE input_expression
    WHEN when_expression THEN
        result_expression [...n ] [
    ELSE
        else_result_expression
    END
    (2)
    CASE
    WHEN Boolean_expression THEN
        result_expression [...n ] [
    ELSE
        else_result_expression
    END
    

    if解释

    IF(expr1,expr2,expr3)
    

    如果 expr1 是TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。

    相关文章

      网友评论

          本文标题:【MySQL】流程控制函数 if和case when

          本文链接:https://www.haomeiwen.com/subject/aggmbrtx.html