Chinaunix

标题: 有关对字段判断长度然后截取取数的效率问题 [打印本页]

作者: xtfnfpgn    时间: 2012-02-14 16:00
标题: 有关对字段判断长度然后截取取数的效率问题
描述:取数对象为data(不存在中文字符),如果data长度大于20,则取data后17位,否则取完整的data,现我使用了两种方法:
1.用case when,
case when length(data)>20 then substr(data,length(data)-16,17) else data end as D
2.用decode
decode(trunc(length(data)/20),0,data,substr(data,length(data)-16,17)) as D

想问下上面哪种方法效率高些,还有没有更快的方法?
作者: xtfnfpgn    时间: 2012-02-16 22:58
怎么没人赐教
作者: renxiao2003    时间: 2012-02-26 22:08
case when的性能应该比较高啊。
作者: godwitness    时间: 2012-03-12 08:55
使用dbms_utility.get_time测试下不就结了?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2