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测试下不就结了?
页: [1]
查看完整版本: 有关对字段判断长度然后截取取数的效率问题