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