75.Oracle数据库SQL开发之 高级查询——更新已有的单元
欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…\
如果表达式左端的引用单元存在,则更新该单元。如果该单元不存在,就在数组中创建一条新的记录。可以用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年的记录。