广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    oracle if else语句使用介绍

    2018-05-04 21:20:55 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布
    接收contract_no和item_no值,在inventory表中查找,如果产品:
    已发货,在arrival_date中赋值为今天后的7天
    已订货,在arrival_date中赋值为今天后的一个月
    既无订货又无发货,则在arrival_date中赋值为今天后的两个月,
    并在order表中增加一条新的订单记录。

    product_status的列值为'shipped'和'ordered'
    inventory:
    product_idnumber(6)
    product_descriptionchar(30)
    product_statuschar(20)
    std_shipping_qtynumber(3)
    contract_item:
    product_id number(6)
    contract_nonumber(12)
    item_nonumber(6)
    arrival_datedate
    order:
    order_idnumber(6)
    product_idnumber(6)
    qtynumber(3)

    代码:
    代码如下:

    declare
    i_product_id inventory.product_id%type;
    i_product_description inventory.product_description%type;
    i_product_status inventory.product_status%type;
    i_std_shipping_qty inventory.std_shipping_qty%type;
    begin
    //sql语句,将查询出来的值放到定义的变量中
    select product_id, product_description, product_status, std_shipping_qty
    into i_product_id, i_product_description, i_product_status, i_std_shipping_qty
    from inventory where product_id=(
    select product_id from contract_item where contract_no=&&contract_no and item_no=&&item_no
    );
    if i_product_status='shipped' then
    update contract_item set arrival_date=sysdate+7 contract_no=&&contract_no and item_no=&&item_no;
    //这里的elseif 是连着写的
    elseif i_product_status='ordered'then
    updatecontract_item
    setarrival_date=add_months(sysdate,1)//加一个月
    whereitem_no=&&itemnoandcontract_no=&&contractno;
    else
    updatecontract_item
    setarrival_date=add_months(sysdate,2)
    whereitem_no=&&itemnoandcontract_no=&&contractno;
    insertintoorders
    values(100,i_product_id,i_std_shipping_qty);
    end if;
    end if;
    commit;
    end;

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告