You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL语句查询筛选出小数位数超过2位的数值

小数位数超2位的数值筛选SQL方案

核心逻辑

只要小数位数超过2位,将数值乘以100后必然存在小数部分,只需要判断乘以100后的结果是否不等于其向下取整的结果即可筛选出目标数据。

不同数据库实现写法

MySQL

SELECT * FROM TableName WHERE 数值列 * 100 <> FLOOR(数值列 * 100);
-- 兼容负数的写法
SELECT * FROM TableName WHERE ABS(数值列 * 100) <> FLOOR(ABS(数值列 * 100));

PostgreSQL

SELECT * FROM TableName WHERE (数值列 * 100) <> FLOOR(数值列 * 100);
-- 模运算简化写法
SELECT * FROM TableName WHERE MOD(数值列::numeric * 100, 1) <> 0;

SQL Server

SELECT * FROM TableName WHERE 数值列 * 100 <> FLOOR(数值列 * 100);

Oracle

SELECT * FROM TableName WHERE MOD(数值列 * 100, 1) <> 0;

特殊场景:数值以字符串格式存储

如果字段为字符串类型存储的数值,可以直接通过字符串函数判断小数点后的长度:

SELECT * FROM TableName WHERE LENGTH(SUBSTR(数值列, INSTR(数值列, '.') + 1)) > 2;

示例参考

示例图片

内容的提问来源于stack exchange,提问作者Rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:30:00