75.Oracle数据库SQL开发之 高级查询——更新已有的单元

来源:互联网 发布:如何免费开淘宝网店 编辑:程序博客网 时间:2024/05/16 00:57

75.Oracle数据库SQL开发之 高级查询——更新已有的单元

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49847115

如果表达式左端的引用单元存在,则更新该单元。如果该单元不存在,就在数组中创建一条新的记录。可以用RULES UPDATE改变这种默认的行为,指出在单元不存在的情况下不创建新记录。

store@PDB1> selectprd_type_id,year,month,sales_amount from all_sales where prd_type_id between 1and 2 and emp_id = 21

    model

    partitionby (prd_type_id)

    dimensionby ( month,year)

    measures(amount sales_amount)

    rulesupdate (

   sales_amount[for month from 1 to 3 increment 1,2004]=

   round(sales_amount[currentv(),2003]*1.25,2))

    order byprd_type_id,year,month;

 

PRD_TYPE_ID    YEAR        MONTH SALES_AMOUNT

----------- ---------- ----------------------

           1    2003              1     10034.84

           1    2003              2     15144.65

           1    2003              3     20137.83

           1    2003              4     25057.45

           1    2003              5     17214.56

           1    2003              6     15564.64

           1    2003              7     12654.84

           1    2003              8     17434.82

           1    2003              9     19854.57

           1    2003            10    21754.19

           1    2003            11    13029.73

           1    2003            12    10034.84

           2    2003              1      1034.84

           2    2003              2      1544.65

           2    2003              3      2037.83

           2    2003              4      2557.45

           2    2003              5      1714.56

           2    2003              6      1564.64

           2    2003              7      1264.84

           2    2003              8      1734.82

           2    2003              9      1854.57

           2    2003            10     2754.19

           2    2003            11     1329.73

           2    2003            12     1034.84

 

24 rows selected.

由于2004年单元不存在,同时又指定了RULES UPDATE,所以不会在数组中为2004年创建新记录,因此这条查询语句不会返回2004年的记录。

 

 

 

 

 

 

 

 

 

 

0 0