各位,求教!关于oracle的decode
各位大虾,求教!关于oracle的decode
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:无效数字?有什么办法解决吗?先行谢过!
------解决方案--------------------
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:无效数字?有什么办法解决吗?先行谢过!
------解决方案--------------------
- SQL code
--經測沒錯,應不是空引起的 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) ------------------