• 存储过程中的while语句


    WHILE

    设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。

    语法

    WHILE Boolean_expression

        { sql_statement | statement_block }

        [ BREAK ]

        { sql_statement | statement_block }

        [ CONTINUE ]

    参数

    Boolean_expression

    返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。

    {sql_statement | statement_block}

    Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字 BEGIN 和 END。

    BREAK

    导致从最内层的 WHILE 循环中退出。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。

    CONTINUE

    使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后的任何语句。

    注释

    如果嵌套了两个或多个 WHILE 循环,内层的 BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。

    示例

    A. 在嵌套的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTINUE

    在下例中,如果平均价格少于 $30,WHILE 循环就将价格加倍,然后选择最高价。如果最高价少于或等于 $50,WHILE 循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过 $50,然后退出 WHILE 循环并打印一条消息。

    USE pubs
    GO
    WHILE (SELECT AVG(price) FROM titles) < $30
    BEGIN
    UPDATE titles
    SET price = price * 2
    SELECT MAX(price) FROM titles
    IF (SELECT MAX(price) FROM titles) > $50
    BREAK
    ELSE
    CONTINUE
    END
    PRINT 'Too much for the market to bear'

  • 相关阅读:
    sqlmap使用教程-安装教程
    SQL注入攻击总结
    mysql 创建函数失败解决办法,版本 8.0.26
    【VUE3.0体验】axios引入以及property的替代
    异化的房价周期
    vue使用websoket
    spring依赖注入方式及springBoot如何解决循环依赖
    范型的正确使用
    mysql GROUP_CONCAT使用
    Mybatis-MySQL 中使用IFNUL
  • 原文地址:https://www.cnblogs.com/stoneJin/p/2191580.html
Copyright © 2020-2023  润新知