ORACLE中这个条件里面减小时与不减的值为负数时为什么出现报错

CASE

WHEN instr(tmp.减小时与不减, '.')= 0 THEN tmp.减小时与不减

WHEN substr(tmp.减小时与不减, instr(tmp.减小时与不减, '.')+ 1, 1)* 1 >= 5 THEN substr(tmp.减小时与不减, 1, instr(tmp.减小时与不减, '.')-1)+ 0.5

ELSE 

substr(tmp.减小时与不减, 1 , instr(tmp.减小时与不减, '.')-1)+ 0

END AS 判断

企业微信截图_16563957875511.png

企业微信截图_16563864372974.png

callie 发布于 2022-6-28 15:29
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-6-28 15:38(编辑于 2022-6-28 16:02)

case when instr(tmp.减小时与不减,'.')=0 then tmp.减小时与不减

when tmp.减小时与不减*1<0 then 0  /*如果为负数直接返回0小时吧*/

when substr(tmp.减小时与不减,instr(tmp.减小时与不减,'.')+1,1)*1>=5 then substr(tmp.减小时与不减,1,instr(tmp.减小时与不减,'.')-1)+0.5 else 

substr(tmp.减小时与不减,1,instr(tmp.减小时与不减,'.')-1)+0 end as 判断

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-6-28 15:33

是不是有些tmp.减小时与不减 没得 “.” 哦

最佳回答
0
用户W4933403Lv5初级互助
发布于2022-6-28 16:17

instr遇到0开头的小数会忽略0

image.pngimage.png

  • 4关注人数
  • 297浏览人数
  • 最后回答于:2022-6-28 16:17
    请选择关闭问题的原因
    确定 取消
    返回顶部