zoukankan      html  css  js  c++  java
  • MySQL 存储过程 -流程控制的使用

    #五。流程控制的使用

    #1.IF 使用

    create PROCEDURE iftest1()
    BEGIN
    DECLARE a int DEFAULT 10;
    -- IF (a>1 &&a<20) THEN
    IF (a>1 and a<20) THEN
    SELECT 'ok';
    ELSE SELECT 'No';
    END IF;
    END;
    CALL iftest();

    #2.case 使用

    create PROCEDURE casetest()
    BEGIN
    DECLARE a int DEFAULT 10;
    CASE a
    WHEN a>10 then SELECT 'no';
    WHEN 10 then SELECT 'ok';
    ELSE SELECT 'nono';
    end CASE;
    END;
    CALL casetest();
    #3.loop 使用

    CREATE PROCEDURE looptest()
    BEGIN
    DECLARE a int DEFAULT 0;
    DECLARE b int DEFAULT 0;
    my_loop:LOOP
    set a=a+1;
    if a>10 THEN LEAVE my_loop;
    END if;
    set b=a;

    END LOOP my_loop;
    SELECT b;

    end;

    CALL looptest();

    #4.LEAVE 使用 跳出当前循环见上个测试用例 looptest相当于java循环中的break

    #5.ITERATE 使用,跳转到循环头部执行,相当于java循环中的continue,ITERATE只能 使用在循环中


    CREATE PROCEDURE ITERATEtest()
    BEGIN
    DECLARE a int DEFAULT 0;
    DECLARE b int DEFAULT 0;
    my_loop:LOOP
    set a=a+1;
    if a>10 THEN LEAVE my_loop;
    ELSEIF a>5 THEN ITERATE my_loop;
    END if;
    set b=a;

    END LOOP my_loop;
    SELECT b;

    end;

    CALL ITERATEtest();

    #6.REPEAT 带条件的循环

    CREATE PROCEDURE REPEATtest()
    BEGIN
    DECLARE a int DEFAULT 0;
    REPEAT
    set a=a+1;
    UNTIL a>10
    END REPEAT;
    SELECT a;
    END;

    CALL REPEATtest();
    #7.WHILE 带条件的循环

    CREATE PROCEDURE WHILEtest()
    BEGIN
    DECLARE a int DEFAULT 0;

    WHILE a<10 DO
    set a=a+1;
    END WHILE;
    SELECT a;

    END;

    CALL WHILEtest()

  • 相关阅读:
    avr studio 的使用小记——有关cannot find ‘*.elf’ 的问题
    c程序存储空间布局
    c程序存储空间布局
    avr studio 的使用小记——有关cannot find ‘*.elf’ 的问题
    一个简单的makefile示例及其注释
    C语言编译过程总结详解 链接方式
    poj3480
    poj3508
    poj1287
    poj1502
  • 原文地址:https://www.cnblogs.com/anxbb/p/9244893.html
Copyright © 2011-2022 走看看