select
decode(trim(A.TERM),'',A.TERM,decode(trunc(trim(A.TERM)/30),0,trim(A.TERM)||'D',trunc(trim(A.TERM)/30)||'M'||mod(trim(A.TERM),30)||'D'))
from A
这个语句,为什么字段A.TERM存在空时,会报错ORA-01722:无效数字?有什么办法解决吗?先行谢过!
decode(trim(A.TERM),'',A.TERM,decode(trunc(trim(A.TERM)/30),0,trim(A.TERM)||'D',trunc(trim(A.TERM)/30)||'M'||mod(trim(A.TERM),30)||'D'))
from A
这个语句,为什么字段A.TERM存在空时,会报错ORA-01722:无效数字?有什么办法解决吗?先行谢过!
解决方案 »
- 一个基础的小问题,求解
- select * from table按照什么排序啊
- 新建用户无法创建程序包和存储过程,是什么原因?
- orcle数据库导出以后,重新安装数据库,再导入报错
- 让人肉疼的查询,关于查询从当前月到本年度1月 同一个对象的数据,给出点主意
- sql里的 any exist in all效率比较 按照效率比较 一般情况下
- oracle9i安装过程中的问题,请高手帮助
- 各位在ORACLE中写SQL,除了PLUS/SQL还有没有别的,这东西好差劲啊,进则有分!!
- 求大神帮新人解决一下oracle触发器问题
- 求助oracle创建表空间时遇到ora00972 : 标识符过长
- 编译release版的QMYSQL和QOCI
- PLSQL 語句,求解释FOR UPDATE的意思
--經測沒錯,應不是空引起的
SQL> create table A(TERM varchar2(20));已建立表格.SQL> insert into A values(null);已建立 1 個資料列.SQL> insert into A values('');已建立 1 個資料列.SQL> select trunc(trim('')/30) from dual;TRUNC(TRIM('')/30)
------------------
--應貼這個
SQL> select
2 decode(trim(A.TERM),'',A.TERM,decode(trunc(trim(A.TERM)/30),
3 0,trim(A.TERM)||'D',trunc(trim(A.TERM)/30)||'M'||mod(trim(A.TERM),30)||'D'))
4 from A
5 ;DECODE(TRIM(A.TERM),'',A.TERM,DECODE(TRUNC(TRIM(A.TERM)/30),0,TRIM(A.TERM)||'D',
--------------------------------------------------------------------------------