您的位置:首页 > 数据库

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

2016-01-30 10:15 489 查看

循环语句:

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 流程控制