日期:2014-05-17  浏览次数:20863 次

有个字段,里面的值可能是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