testbook

CONTROL STRUCTURES

  • 条件控制
    IF THEN 语句
    语法
    IF condition
    THEN statements
    END IF
    
    说明与解释
    condition 可以使用变量计算,或者是Hive UDF以及嵌套调用,statements 可以是控制流、循环、赋值语句,以及SQL执行语句。

    IF THEN ELSE语句
    语法
    IF condition THEN
      statements
    ELSE
      else_statements
    END IF
    
    说明与解释
    condition 可以使用变量计算,或者是Hive UDF以及嵌套调用,statements和else_statements都可以是控制流、循环、赋值语句以及SQL执行语句。

    IF THEN ELSEIF语句
    语法
    IF CONDITION THEN
      STATEMENTS
    ELSIF
      ELSIF_STATEMENTS_1
    [ ELSIF
        ELSIF_STATEMENTS_2
    ]...
    [ELSE
      ELSE_STATEMENTS
    ]
    END IF
    
    说明与解释
    condition 可以使用变量计算,或者是Hive UDF以及嵌套调用,statements、elseif_statements_* 和else_statements都可以是控制流、循环、赋值语句,以及SQL执行语句。

  • 循环控制
    FOR LOOP
    语法
    FOR index IN [REVERSE] lower_bound ... upper_bound
     statements
    END LOOP
    
    说明与解释
    index必须是预先定义的变量,lower_bound、upper_bound 可以是常数,或者可以被解析的表达式或函数。

    WHILE LOOP
    语法
    WHILE condition LOOP
      statements
    END LOOP
    
    说明与解释
    condition 可以使用变量计算,或者是Hive UDF以及嵌套调用,statments 可以是控制流、循环、赋值语句,以及SQL执行语句。

    BREAK/CONTINUE
    语法
    说明与解释
    BREAK、CONTINUE用于循环的控制
    举例
     FOR loop_index IN REVERSE 2*id .. 0
      LOOP
        IF loop_index==2 THEN
          BREAK
        ELSE
          SET ret := ret - loop_index
        END IF
      END LOOP