精华内容
下载资源
问答
  • 展开全部不同的数636f70793231313335323631343130323136353331333337613861据库中,存储过程中if else 语句写法有一些差别。如果是SQLServer数据库,存储过程的if, else语句可以这样写:ifa>bBeginprint'a'...

    展开全部

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

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

    Begin

    print 'a'

    End

    Else if a

    Begin

    print 'b'

    End

    Else

    Begin

    print '代码'

    End

    Oracle 采用下面这种写法: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   )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;

    展开全文
  • 为大家介绍sql server存储过程中if esle的用法,供大家学习参考。数据库中有两张表,A表主键为自动增长的并且是B表的外键且允许为空
  • 不同的数据库中,存储过程中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...

    不同的数据库中,存储过程中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;
    展开全文
  • 总忘记mysql存储过程的语法,然后百度出来的答案总写不全,自己写个例子...IF ((b_type IS NOT NULL) AND (c_type IS NOT NULL)) THENIF (b_type =c_type) THENSELECT 1;-- 一定得写一句话,不知道有没有类似于...

    总忘记mysql存储过程的语法,

    然后百度出来的答案总写不全,

    自己写个例子...

    IF ((b_type IS NOT NULL) AND (c_type IS NOT NULL)) THEN

    IF (b_type =c_type) THEN

    SELECT 1;-- 一定得写一句话,不知道有没有类似于python中的pass

    ELSEIF (b_type !=c_type) THEN

    IF (c_type = 1) THEN

    SELECT 3;

    END IF;

    END IF;

    END IF;

    想起之前建军大爷总让我在if的条件里面写成Null != xxx,说是万一xxx妹汁的时候可以避免错误。

    但目前的编程语言都没遇到过必须写成这样的情况。可能是c或者c++里面的习惯?

    DELIMITER $$

    USE `zeus`$$

    DROP PROCEDURE IF EXISTS `inventory_cost`$$

    CREATE DEFINER=`zeusquery`@`%` PROCEDURE `inventory_cost`()

    BEGIN

    CREATE TABLE IF NOT EXISTS zeus_tmp.tmpPro_inventory_cost LIKE zeus.inventory_cost;

    DELETE FROM zeus_tmp.tmpPro_inventory_cost;

    CREATE TABLE IF NOT EXISTS zeus_tmp.tmpDistinct_inventory_cost(

    `org_id` DOUBLE ,

    `warehouse_id` DOUBLE ,

    `item_id` DOUBLE

    );

    DELETE FROM zeus_tmp.tmpDistinct_inventory_cost;

    INSERT INTO zeus_tmp.tmpDistinct_inventory_cost

    SELECT DISTINCT org_id,warehouse_id, item_id FROM zeus_tmp.tmp_inventory_cost;

    BEGIN

    DECLARE b_org_id INT(11);

    DECLARE b_warehouse_id INT(11);

    DECLARE b_item_id INT(11);

    DECLARE ws_done INT(11) DEFAULT 0;

    DECLARE ws CURSOR FOR SELECT DISTINCT org_id ,warehouse_id,item_id FROM zeus_tmp.tmpDistinct_inventory_cost;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET ws_done = 1;

    OPEN ws;

    loop1:LOOP

    IF ws_done = 1 OR cal_flag=length_tmp_inventory_cost THEN

    LEAVE loop1 ;

    END IF ;

    FETCH NEXT FROM ws INTO b_org_id ,b_warehouse_id, b_item_id;

    END LOOP loop1;

    CLOSE ws;

    END;

    END$$

    DELIMITER ;

    展开全文
  • 数据库有两张表,A表主键为自动增长的并且是B表的外键且...为了解决这个为题最后考虑用存储过程If Else最方便,具体的存储过程如下 create PROCEDURE [dbo].[P_Form_Control_Info_Add] @TypeName varchar(20),

     

    数据库中有两张表,A表主键为自动增长的并且是B表的外键且允许为空。现在要通过编程向B表中插入数据,可是在程序中是不允许给Int类型赋空值的如果不赋值就默认为0。为了解决这个为题最后考虑用存储过程的If Else最方便,具体的存储过程如下

     



    create PROCEDURE [dbo].[P_Form_Control_Info_Add]
        
    @TypeName varchar(20),
        
    @Description varchar(50),
        
    @CtlColSpan int,
        
    @Sort int,
        
    @SourceID int,
        
    @FieldID int,
        
    @TableID int
    AS
    if @SourceID = 0
    begin
    INSERT INTO T_Form_Control_Info (
        
    [TypeName],
        
    [Description],
        
    [CtlColSpan],
        
    [Sort],
        
    [FieldID],
        
    [TableID]
    VALUES (
        
    @TypeName,
        
    @Description,
        
    @CtlColSpan,
        
    @Sort,
        
    @FieldID,
        
    @TableID
    )
    end
    else 
    begin
    INSERT INTO T_Form_Control_Info (
        
    [TypeName],
        
    [Description],
        
    [CtlColSpan],
        
    [Sort],
        
    [SourceID],
        
    [FieldID],
        
    [TableID]
    VALUES (
        
    @TypeName,
        
    @Description,
        
    @CtlColSpan,
        
    @Sort,
        
    @SourceID,
        
    @FieldID,
        
    @TableID
    )
    end
    return SCOPE_IDENTITY()
    展开全文
  • MySQL IF ELSEIF ELSE基于多个表达式执行语句。其语法如下-IFexpressionTHENstatements;ELSEIFelseif-expressionTHENelseif-statements;...为了演示IF ELSEIF ELSE语句在MySQL存储过程中的使用,我们基于以下名...
  • 存储过程ifelse怎幺写?Oracle 是下面这种写法:IF testvalue > 100 THENdbms_output.put_line( '100+' );ELSIF testvalue = 100 THENdbms_output.put_line( '100' );ELSEdbms_output.put_line( '100-' );END ...
  • drop procedure if exists p_hello_world; create procedure p_hello_world(in v_id int) begin if (v_id > 0) then select '> 0'; elseif (v_id = 0) then select '= 0'; else
  • mysql中存储过程 使用if else 判断

    千次阅读 2019-09-04 09:12:41
    BEGIN declare phonenum VARCHAR(32) ; SELECT phonenumber INTO phonenum FROM A WHERE phonenumber = `p_phonenumber` ;... if phonenum is NULL then INSERT INTO A (phonenumber ,isselect) VALUES (`p...
  • create or replace procedure pro_common_callback( srctablename in varchar2, desttablename in varchar2, ...if desttablename='T_LS_CHECK_QULIFICATION' then begin v_select_sql:='insert into T_LS_C
  •   create procedure test(in a int)  ...elseif a&gt;2 then   select 2;  else    end if;  [xhtml] view plaincopyprint?   create procedure test(i...
  • 用法 if ... then ... elsif ... then ... else ... end if; if ... then  ... else ... end if; if ... then ... end if; ...
  • mysql存储过程中if...else常见用法

    万次阅读 2017-06-07 15:49:26
    记:mysql判断使用=,编程习惯了老是写==,很容易忽略
  • oracle中if else只能在存储过程中用吗? 执行 if 3=3 then select sysdate from dual ; end if; 为什么会报错,请各位大神们指点迷津,在下感激不尽!
  • If ...... Then   elsif .... Then   else   end if;     or   if ... Then   else   end if;   or   if.... Then   end if;
  • oracle支持在函数或存储过程之外使用if else for等任何语句,而mysql执行if else for等语句只能在函数或存储过程中才行!
  • create or replace procedure PCInsertOrUpdateMsg( companyId varchar2 :='1', personId varchar2 :='6', resume_name varchar2 :='简历...请各位大神门帮忙看下,oracleif else 到底怎么用。感激不尽!
  • 就是判断商品表 shch_product表是不是空,如果为空将data_tijianbiao的信息全部插入到商品表,如果不为空表,则将商品表没有,但是data_tijianbiao有的信息加入到商品表,为什么存储过程无法成功执行啊 ...
  • DROP PROCEDURE IF EXISTS text; CREATE PROCEDURE text ...ELSEIF LoginId = 0 THEN SET rtn = 3; ELSE SET rtn = 4; END IF; END 转载于:https://my.oschina.net/roundnet/blog/533230
  • if() begin ... end ...else if() begin ... end else begin ... end 第二个 else 总是描红下划线,提示: [color=#FF0000]else 附近有语法错误。应为conversation[/color]

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 893
精华内容 357
关键字:

else存储过程中if