• 流程控制


    主要语句:

    BEGIN ...  END

    IF ...ELSE

    CASE

    WHILE

    GOTO

    WAITFOR

    1.BEGIN ...  END

    语句块是多条Transact-SQL语句组成的代码段,从而可以执行一组Transact-SQL语句。

    当流程控制语句必须执行一个包含两条或两条以上的T-SQL语句的代码段时,使用BEGIN ... END语句

    BEGIN和END是控制流语言的关键字。BEGIN...END语句块通常包含在其他控制流程中,用来完成不同流程中有差异的代码功能。

    2.IF ...ELSE

    3.CASE

    CASE语句是多条件分支语句,相比IF...ELSE语句,CASE语句进行分支流程控制可以使代码更加清晰,易于理解。

    CASE语句根据表达式逻辑值的真假来决定执行的代码流程。

    CASE WHEN  测试 <> ''THEN 测试
          WHEN  测试 = '' AND URL IS not NULL  THEN nc.dbo.dict_url_channel(URL)       --前面一步已经判断出来的条件,不会再进行判断。
          WHEN  测试 = '' AND [19推广属性] = '全国' THEN  '测试' 
          ELSE 测试
          END AS 测试

    4.WHILE

    WHILE语句根据条件重复执行一条或多条T-SQL代码,只要条件表达式为真,就循环执行语句。

    可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。

    WHILE Boolean_expression 
         { sql_statement | statement_block | BREAK | CONTINUE }

    参数:

      Boolean_expression:返回 TRUE 或 FALSE 的表达式。 如果布尔表达式中含有 SELECT 语句,则必须用括号将 SELECT 语句括起来。
      {sql_statement | statement_block}:Transact-SQL 语句或用语句块定义的语句分组。 若要定义语句块,请使用控制流关键字 BEGIN 和 END。
      BREAK:导致从最内层的 WHILE 循环中退出。 将执行出现在 END 关键字(循环结束的标记)后面的任何语句。
      CONTINUE:使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后面的任何语句。

           BREAK 或 CONTINUE。BREAK 语句退出最内层的 WHILE 循环,CONTINUE 语句则重新开始 WHILE 循环。

           例如,如果没有其他行可以处理,程序可能执行 BREAK 语句。例如,如果要继续执行代码,则可以执行 CONTINUE 语句。

    5.GOTO:

    GOTO命令用来改变程序执行的流程,使程序跳转到标识符指定的程序行再继续往下执行。

     declare @x int
     select @x=1
    ceshi_1:                             --注意存在冒号:
        print @x
        select @x=@x+1
     while @x<=3 goto ceshi_1

     6.WAITFOR:

    WAITFOR {delay<'时间'> | TIME<'时间'>WAITFOR 
    {
        DELAY 'time_to_pass' 
      | TIME 'time_to_execute' 
      | [ ( receive_statement ) | ( get_conversation_group_statement ) ] 
        [ , TIMEOUT timeout ]
    }

    DELAY参数指定了等待的时间段。不能指定天数,只能指定小时数、分钟数和秒数。允许延迟的最长时间为24小时。

    将运行WAITFOR语句前的任何代码,然后到达WAITFOR语句,停止1小时,之后继续执行下一条语句中的代码。

  • 相关阅读:
    SQL SERVER或oracl如何判断删除列
    shell date获取时间值
    Zabbix 企业Nginx监控
    Nginx 初探
    Css 基础学习
    jQuery 基础学习
    私有云Mariadb集群搭建
    私有云Rabbitmq 集群部署
    SaltStack Job管理
    Zabbix 监控rabbitmq
  • 原文地址:https://www.cnblogs.com/qianslup/p/10965956.html
Copyright © 2020-2023  润新知