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

MySQL查询小数部分大于0的数据问题求助

如何用SQL筛选小数部分大于0的数据?

嘿,你这种一个个枚举数值的操作确实太折腾了,完全没必要!其实我们可以直接通过计算来判断数值的小数部分是否大于0,给你几个通用且高效的方案:

方法一:用数值减去整数部分判断

直接用目标列的值减去它的整数部分,如果结果大于0,就说明存在非零的小数部分:

SELECT * FROM your_table
WHERE column_name - FLOOR(column_name) > 0;

解释:FLOOR()函数会返回小于等于目标数值的最大整数,比如FLOOR(1.75)得到1,FLOOR(47.000)得到47。用原数值减去这个整数结果,剩下的就是小数部分,只要这个结果大于0就符合你的要求。

方法二:用取余运算判断

利用任何数值对1取余的结果就是它的小数部分这个特性,写法更简洁:

SELECT * FROM your_table
WHERE MOD(column_name, 1) > 0;

解释:比如MOD(3.25, 1)返回0.25,MOD(2.0000, 1)返回0,通过判断这个余数是否大于0,就能快速筛选出符合条件的行。

注意事项:数据类型问题

如果你的列存储的是字符串类型(比如原本是文本格式的数值),需要先把它转换成数值类型再进行计算,比如用CAST()函数:

SELECT * FROM your_table
WHERE CAST(column_name AS DECIMAL(10,4)) - FLOOR(CAST(column_name AS DECIMAL(10,4))) > 0;

如果列本身就是数值类型(比如DECIMAL、FLOAT),直接用上面的方法就可以啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:18:11