免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1764 | 回复: 3
打印 上一主题 下一主题

有关对字段判断长度然后截取取数的效率问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 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

想问下上面哪种方法效率高些,还有没有更快的方法?

论坛徽章:
0
2 [报告]
发表于 2012-02-16 22:58 |只看该作者
怎么没人赐教

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2012-02-26 22:08 |只看该作者
case when的性能应该比较高啊。

论坛徽章:
0
4 [报告]
发表于 2012-03-12 08:55 |只看该作者
使用dbms_utility.get_time测试下不就结了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP