PL/SQL:按比例查询数字数据类型?

aut*_*con 2 oracle plsql

希望选择数字字段在小数点后有一定数据量的行

例如

select number from table where number.scale > 4;
Run Code Online (Sandbox Code Playgroud)

这是否可以直接执行,或者我必须转换为字符串并明智地解析字符

Joh*_*yle 7

如果我正确理解了这个问题,您想查找小数点后精度超过 4 位的数字吗?例如,您想要 3.0671、3.06713 等,但不是 3.067 或 3.06 或 3。如果是这种情况,那么您可以执行以下操作:

select number from table where number - trunc(number,4) <> 0;
Run Code Online (Sandbox Code Playgroud)

这里的 trunc 将简单地删除第四个十进制数字之后的所有内容

(我没有考虑尼克对 2 和 2.00 所说的话。)

  • 我认为需要注意:仅对定点数使用此类检查,切勿对浮点数使用此类检查。 (3认同)