不同的数据库中,存储过程中if else 语句写法有一些差别。

如果是SQLServer数据库,存储过程的if, else语句可以这样写:

1



2



3



4



5



6



7



8



9



10



11



12

if?a>b       


        Begin       


        ???        print?        'a'       


        End       


        Else?        if?a<b       


        Begin       


        ???        print?        'b'       


        End       


        Else       


        Begin       


        ????        print?        '代码'?       


        End

Oracle 采用下面这种写法:

1



2



3



4



5



6



7

IF?testvalue?>?100?        THEN       


        ??        dbms_output.put_line(?        '100+'?        );       


        ELSIF?testvalue?=?100?        THEN       


        ??        dbms_output.put_line(?        '100'?        );       


        ELSE       


        ??        dbms_output.put_line(?        '100-'?        );       


        END?        IF;

DB2, ?MYSQL ?是下面这种写法: ?( 与 Oracle 区别在于那个 ? ?ELSIF ? )

1



2



3



4



5



6



7

IF?p_val?>?100?        THEN       


        ??        INSERT?        INTO?        output_debug?        VALUES        (?        '100+'?        );?       


        ELSEIF?p_val?=?100?        THEN       


        ??        INSERT?        INTO?        output_debug?        VALUES        (?        '100'?        );?       


        ELSE       


        ??        INSERT?        INTO?        output_debug?        VALUES        (?        '100-'?        );?       


        END?        IF;