欢迎来到天天文库
浏览记录
ID:34725148
大小:57.35 KB
页数:5页
时间:2019-03-10
《oracle的model用法简介》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle的model用法简介2010-04-2210:15Model语句是Oracle10g的新功能之一。 本文通过一些简单的例子帮助理解Model语句的用法,复杂使用场景请参考其他文章。环境:当然需要Oracle10g以上,本人是在11g上测试的。1.什么是model语句 model语句是Oracle10g的新功能,可以在select语句里面像其他编程语言操作数组一样,对SQL的结果集进行处理。执行顺序是位于Having之后。select的解析执行顺序1.from语句2.where语句(结合条件)3.startwith语句4.connectb
2、y语句5.where语句6.groupby语句7.having语句8.model语句9.select语句10.union、minus、intersect等集合演算演算11.orderby语句model的好处 Oracle9i为止,需要使用各种计算分析函数,unionall等,以及借助其他开发语言(C#及Java等)进行复杂计算统计合并等。使用Model之后,这些都可以在SQL里面进行了。 model典型使用场景。1.合计行追加2.行列变换3.使用当前行的前后行4.RegExp_Replace函数的循环执行2.HelloWorld 先看一个简单的例子
3、。例句1selectArrValue,soejifrom(select'abcdefghijklmn'asArrValue,1assoejifromdual)modeldimensionby(soeji)measures(ArrValue)rules(ArrValue[1]='HelloWorld');结果:ArrValuesoejiHelloWorld1说明:modelmodel语句的关键字,必须。dimensionby dimension维度的意思,可以理解为数组的索引,必须。measures指定作为数组的列rules 对数组进行各种操作的描述
4、。例句1的理解: select'abcdefghijklmn'asArrValue,1assoejifromdual;上面子查询的结果:ArrValue soejiabcdefghijklmn1根据下面语句modeldimensionby(soeji)measures(ArrValue)soeji作为索引对数组ArrValue进行操作,rules(ArrValue[1]='HelloWorld')就是说用HelloWorld覆盖ArrValue[1]里面的值。在看一个例子,例句2:selectArrValue,soejifrom(sele
5、ct'abcdefghijklmn'asArrValue,1assoejifromdual)modeldimensionby(soeji)measures(ArrValue)rules(ArrValue[1]='HelloWorld',ArrValue[2]='Hellomodel');执行结果:ArrValue soejiHelloWorld1Hellomodel2 rules的缺省行为是存在就更新,不存在则追加,因此,ArrValue[1]='HelloWorld'是更新一条,ArrValue[2]='HelloModel'inser
6、t一条。 再看一个例子,例句3:selectArrValue,soejifrom(select'abcdefghijklmn'asArrValue,1assoejifromdual)modeldimensionby(soeji)measures(ArrValue)rules(ArrValue[3]='HelloOracle');结果是:ArrValue soejiabcdefghijklmn1HelloOracle3 model语句里面,索引可以是不连续的。再看一个例子,例句4:selectArrValue,soejifrom(selec
7、t'abcdefghijklmn'asArrValue,1assoejifromdual)modelreturnupdatedrowsdimensionby(soeji)measures(ArrValue)rules(ArrValue[4]='HelloCodeZine');结果是:ArrValue soejiHelloCodeZine4 使用modelreturnupdatedrows的话,被rules更新或者插入的行才显示,没有更新过的行不再作为SQL的结果。再来一个,有下表,希望在检索结果后面加一个合计行:addTotalIDVal
8、13021003504300 selectID,ValfromaddTotalmodeldimensionby(ID)me
此文档下载收益归作者所有