Oracle sql语句获取 字段为nunmber(18,4)类型数据 小数点后有3位的记录

发布时间 2024-01-03 18:30:36作者: 滴水穿石~

sql:

select LENGTH(t.pop_money),  instr(t.pop_money, '.'), t.*

from TB_DIET_WAREHOUSE_POP_LIST t
where LENGTH(t.pop_money) - instr(t.pop_money, '.') > 2
and instr(t.pop_money, '.') > 0  --获取有小数的数据,因为123.0000 length=3,instr(字段,'.')=0 length-instr=0

--------------------------------------------------------------------------------------------------------------------------------------------------

 

length函数和instr函数,都是针对的字符串

--例如:123.5030  length=7,instr(字段,'.')=4 length-instr=3

所以在处理数值123.5030时,实际上是length(123.503)=7 , instr(123.503,'.')=4

 

需要注意的是,必须获取数据中含小数的数据:

在处理数值123.0时,实际上是length(123)=3 , instr(123,'.')=0

所以要加上instr(t.pop_money, '.') > 0