求oracle 数据库高手 围观 此问题: 执行下面代码 报此错误:ora-01722:无效数字

select '按日期统计',(T1.cost*1/T2.cost*1)*100 pct,ltrim(T1.cost)+'/'+ltrim(T2.cost)
cont from (select count(cm.policycode)cost from casetotalsummarize ctsm,casemessage cm
where ctsm.policycode = cm.policycode and ctsm.casenumber = cm.casenumber and ctsm.grade_hs='C'
and cm.way_hs='' and (cm.handledate_hs between date'2011-10-12' and date'2011-11-29')
and cm.link='核损') T1,(select (case when count(ctsm.policycode)=0 then 1 else count(ctsm.policycode)
end) cost from casetotalsummarize ctsm,casemessage cm where ctsm.policycode = cm.policycode and
ctsm.casenumber = cm.casenumber and ctsm.grade_hs='C' and (ctsm.handledate between date'2011-10-12'
and date'2011-11-29') and cm.link='核损') T2
最新回答
奶茶

2025-03-29 10:51:29

(select (count(cm.policycode) cost ......) T1
这个T1.cost和T2.cost都是数值,但在第一行,却使用了ltrim函数,不对了:ltrim(T1.cost)+'/'+ltrim(T2.cost)
1、cost是数值不能使用ltrim函数;
2、数值相加可以,但不可以在数值中间加'/'字符
芣敗と偢旪

2025-03-29 03:09:59

无效数字产生的原因是由于 将非数值型转化为数值型包错 才会报出 ora-01722:无效数字
的错误,请仔细查询你该SQL 中的字段值,就能找出哪有问题了
追问
麻烦您具体说实在点好么    求您了  我实在是看不个所以然出来
一梦红尘

2025-03-29 14:44:04

ltrim(T1.cost) + '/' + ltrim(T2.cost) cont

oralce中连接字符串用 ltrim(T1.cost) || '/' || ltrim(T2.cost) cont
盖世傻白甜

2025-03-29 04:31:59

这么多字才5点财富,你可以等待了