首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

有个字段,里面的值可能是13366或者13.3kb,如何判断并统一输出13366的结果

2012-12-15 
有个字段,里面的值可能是13366或者13.3kb,怎么判断并统一输出13366的结果就是把13.3kb最后的kb去掉,再乘10

有个字段,里面的值可能是13366或者13.3kb,怎么判断并统一输出13366的结果
就是把13.3kb最后的kb去掉,再乘1000(还是1024?)

但是我不知道在sql里怎么判断是否以kb结尾,然后怎么把kb截去
[最优解释]
select decode(substr('13.3kb', length('13.3kb') - 1, length('13.3kb')),
              'kb',
              substr('13.3kb', 0, length('13.3kb') - 2) * 1000,
       '输出原值')
  from dual;
[其他解释]
判断以'kb'或者'KB'或者'Kb'或者'kB'结尾: UPPER(column_name) LIKE '%KB'
把'kb'或者'KB'或者'Kb'或者'kB'截去: TO_NUMBER(SUBSTR(column_name,1,LENGTH(column_name)-2+1))*1024
[其他解释]
select replace(UPPER('Kb11KB22kb33'),UPPER('kb')) from dual

热点排行
Bad Request.