美文网首页
daily -- mysql 基础 分支语句( if and

daily -- mysql 基础 分支语句( if and

作者: JackSpeed | 来源:发表于2021-03-30 22:41 被阅读0次

    if函数

    语法:IF(表达式1,表达式2,表达式3);

    如果表达式1成立(true),返回表达式2的值;如果表达式1不成立(false),返回表达式3的值;

    可使用在任何地方

    if语句

    if 条件1 then 语句1;
    elseif 条件2 then 语句2;
    ...
    else 语句 n;
    end if;

    应用场景:只能用在begin end中(存储过程或者函数)
    存储过程使用

    delimiter $
    create procedure test_ifproce(IN score int)
    begin
        if score >= 90 and score <= 100 then
            select 'A';
        elseif score >= 80 then
            select 'B';
        elseif score >= 60 then
            select 'C';
        else
            select 'D';
        end if;
    end $
    
    set @score=90;
    call test_ifproce(@score);
    

    函数使用

    delimiter $
    create function test_ifproce2( score int) returns char
    begin
        if score >= 90 and score <= 100 then
            return 'A';
        elseif score >= 80 then
            return 'B';
        elseif score >= 60 then
            return 'C';
        else
            return 'D';
        end if;
    end $
    
    set @score=20;
    select test_ifproce2(@score);
    

    case

    case的第一种类型
    #使用在begin end 里面
    case 表达式
    when 值1 then 语句1;
    when 值2 then 语句2;
    when 值3 then 语句3;
    ......
    else 语句n;
    end case;
    
    #使用在begin end 外面
    case 表达式
    when 值1 then 值1;
    when 值2 then 值2;
    when 值3 then 值3;
    ......
    else 值n;
    end case;
    
    case的第二种类型
    #使用在begin end 里面
    case 表达式
    when 条件1 then 语句1;
    when 条件2 then 语句2;
    when 条件3 then 语句3;
    ......
    else 语句n;
    end case;
    
    #使用在begin end 外面
    case 表达式
    when 条件1 then 值1;
    when 条件2 then 值2;
    when 条件3 then 值3;
    ......
    else 值n;
    end case;
    
    example

    创建存储过程,根据传入成绩,显示等级(90-100,显示A,80-90,显示B)

    delimiter $
    create procedure test_proce(IN score int ,OUT level varchar(10))
    begin
        case
        when score>=90  and score<=100  then select 'A' into level;
        when score>=80  then select 'B' into level;
        when score>=60  then select 'C' into level;
        else select 'D' into level;
        end case ;
    end $
    set @score=40;
    set @level='';
    call  test_proce(@score,@level);
    select @level;
    

    相关文章

      网友评论

          本文标题:daily -- mysql 基础 分支语句( if and

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