sql的循环,判断,跳转语句

循环语句:

while

while 布尔表达式(循环的条件) do
    循环体(语句用分号标记结束)
end while

repeat

repeat
    循环体(语句用分号标记结束)
until 布尔表达式(停止循环的条件)
end repeat

loop

循环标签 : loop
    循环执行语句;
end loop 循环标签

LEAVE语句用来退出任何被标注的流程控制语句,语法如下:

LEAVE label;

ITERATE语句将执行顺序转到语句段开头处,ITERATE只可以出现在 LOOP、REPEAT和WHILE语句内。语法如下:

ITERATE label;

以上两个语句只能在循环中使用

下面分别演示使用三种循环对1到100求和

while

mysql>delimter //
mysql> create function sum100()
    -> returns int
    -> begin 
    -> declare sum int default 0;
    -> declare i int default 0;
    -> while i <= 100 do
    ->     set sum = sum + i;
    ->     set i = i + 1;
    -> end while;
    -> return sum;
    -> end
    -> //

repeat

mysql> create function sum100()
    -> returns int
    -> begin 
    -> declare sum int default 0;
    -> declare i int default 0;
    -> repeat 
    ->     set sum = sum + i;
    ->     set i = i + 1;
    -> until i > 100
    -> end repeat;
    -> return sum;
    -> end
    -> //

loop

mysql> create function sum100()
    -> returns int
    -> begin 
    -> declare sum int default 0;
    -> declare i int default 0;
    -> lpl : loop
    ->     set sum = sum + i;
    ->     set i = i + 1;
    ->     if i > 100
    ->         then leave lpl;
    ->     end if;
    -> end loop lpl;
    -> return sum;
    -> end
    -> //

判断语句:

if 布尔表达式
    then 语句
elseif 布尔表达式
    then 语句
else
    语句
end if

条件跳转语句:

case 判断的变量
    when 一个值 then 执行语句;
    when 一个值 then 执行语句;
    when 一个值 then 执行语句;
    else 执行语句;
end case

case 语句的示例:(注意与select中的case语句不一样)

mysql> create function trans(a int)
    -> returns char
    -> begin
    -> case a
    -> when 1 then return 'A';
    -> when 2 then return 'B';
    -> when 3 then return 'C';
    -> else return '+';
    -> end case;
    -> end
    ->//

赋值语句

对于赋值语句同样可使用
select a into b;
等同与
set b = a;

    原文作者:SQL
    原文地址: https://blog.csdn.net/xiongyangg/article/details/50610473
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞