oracle使用技巧集萃

    下面收录oracle使用过程中用到的一些技巧。随得随加。

    1。oracle中正则表达式支持子组,即submatch

   如下例:

select regexp_replace('12|23,34|56,55,78|34', '(\d)\d(\,\d{2})*', '\1' ) from tab
   得到结果:“1|2|5|3” => 提取用竖线分隔的每组数字的第一位

select regexp_replace('12', '(\d)\d(\,\d{2})*', '\1' ) from tab
   得到结果:“1”

select regexp_replace('12|23,34|56,55,78|34', '\d(\d)', '\1' ) from tab
   得到结果:“2|3,4|6,5,8|4” => 提取每组数字的第二位

select regexp_replace('12|23,34|56,55,78|34', '(\d)(\d)', '\2\1' ) from tab
   得到结果:“21|32,43|65,55,87|43”=> 实现数字位置的互换

select regexp_replace('89', '(\d)(\d)', '交换位置前:\1\2;交换位置后:\2\1' ) from tabs
   得到结果:“交换位置前:89;交换位置后:98”=>可混用,多次使用

  解释: 替换表达式使用"\1",即将前面正则表达式每次匹配到的字符串替换为第一个子式(小括号内表达式匹配结果)的内容。

     2。oracle中,dump函数可以查看文本编码;

    如:SELECT t.tablespace_name,DUMP(t.tablespace_name,16) D FROM tabs t
    得到结果:TNAME=“USERS”,D=“Typ=1 Len=5: 55,53,45,52,53”

  解释:DUMP函数参数2指明编码显示数字的进制。

    3.  功能强大而简洁的Decode函数 

   在逻辑编程中,经常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。它的语法如下:
     DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
    Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。
    需要注意的是,这里的if、then及else 都可以是函数或计算表达式。   
   以一个函数表示一条函数语句,简洁而强悍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值