SQL——流程控制

环境

  DBMS:MySQL 8.0.17

  工具:Navicat Premium 11.2.16

概述

  过程化SQL提供了流程控制语句,主要有条件控制语句和循环控制语句。这些语句都只能在SQL块中使用。

条件控制语句

if语句

IF <条件表达式1> THEN
    <语句1>
ELSEIF <条件表达式2> THEN
    <语句2>
...
ELSE
    <语句n>
END IF;

  定义一个函数用于判断年龄的阶段,其中1~10为幼年,11~20为少年,21~30为青年,30~50为中年,50以上为老年:

  

  测试函数judge:

  

case语句

  case语句有2种格式。

  第一种格式为:

CASE
    WHEN <条件表达式1> THEN
        <语句1>
    WHEN <条件表达式2> THEN
        <语句2>
    ...
    ELSE
        <语句n>
END CASE;

  定义一个函数用于判断年龄的阶段,其中1~10为幼年,11~20为少年,21~30为青年,30~50为中年,50以上为老年:

  

  测试函数judge:

  


  第二种格式为:

CASE <表达式>
    WHEN <值1> THEN
        <语句1>
    WHEN <值2> THEN
        <语句2>
    ...
    ELSE
        <语句n>
END CASE;

  定义一个函数用于返回星期名:

  

  测试函数weekname:

  

循环控制语句

while语句

<标签>:WHILE <循环条件> DO
    <循环体>
END WHILE <标签>;

  定义while语句时需要给定一个标签,在end while之后加上标签表示结束的while语句。

  

  执行结果:

  

repeat语句

<标签>:REPEAT
    <循环体>
UNTIL <结束条件>
END REPEAT <标签>;

  定义repeat语句时需要给定一个标签,在end repeat之后加上标签表示结束的repeat语句。

  

  执行结果:

  

循环结束语句

leave语句

  leave语句用于结束当前循环。

LEAVE <标签>;

iterate语句

  iterate语句用于结束本次循环,进入下一次循环。

ITERATE <标签>;
原文地址:https://www.cnblogs.com/lqkStudy/p/11493749.html