如何使用SQL查找具有一定小数位数的值?

时间:2015-08-07 20:39:22

标签: sql

我正试图找出一种方法,使用SQL来查询超出5位或更多小数位的值。换句话说,我想只看到有5个以上小数位的结果(例如45.324754) - 小数点前的数字无关紧要,但是,我仍然需要查看完整的数字。这可能吗?任何帮助,如果感激。

6 个答案:

答案 0 :(得分:1)

假设您的DBMS支持FLOOR并且您的数据类型转换模型支持此乘法,您可以这样做:

SELECT *
FROM Table
WHERE FLOOR(Num*100000)!=Num*100000

这样做的好处是不需要转换为字符串数据类型。

答案 1 :(得分:1)

在SQL Server上,您可以指定:

SELECT *
FROM Table
WHERE Value <> ROUND(Value,4,1);

对于ANSI方法,您可以使用:

SELECT *
FROM Table
WHERE Value <> CAST(Value*100000.0 AS INT) / 100000.0;

虽然如果你正在处理大数字,这种方法可能会导致溢出。

答案 2 :(得分:0)

select val
from tablename
where length(substr(val,instr(val, '.')+1)) > 5

这是使用substrinstr

在oracle中执行此操作的方法

答案 3 :(得分:0)

我想大多数DBMS都有一个round函数

SELECT * 
FROM YourTable 
WHERE YourCol <> ROUND(YourCol,4)

答案 4 :(得分:0)

这在SQL Server中对我有用:

SELECT * 
    FROM YourTable
    WHERE YourValue LIKE '%._____%';

答案 5 :(得分:0)

您可以使用以下解码语句来标识数据库表中存在的最大十进制数

SELECT max(decode(INSTR(val,'.'), 0, 0, LENGTH(SUBSTR(val,INSTR(val,'.')+1)))) max_decimal 
FROM tablename A;