SQL:如何只选择非零的行'分钟'金钱领域的一部分?

时间:2015-01-23 19:08:31

标签: sql

我的捐款表如下:

id      int
donation  smallmoney
... other columns ...

我希望运行一个报告,仅选择捐赠金额在“分数”中为非零的行。部分领域。例如,如果一行捐赠了12.66,那么我想要选择那一行。但如果该行捐赠了12.60,那么我会跳过那一行。

这样的查询是否可能?我一直在谷歌搜索没有运气。

感谢专家!

2 个答案:

答案 0 :(得分:4)

您也可以使用模数运算符。

select * from table 
where (donation * 100.00) % 100 != 0

答案 1 :(得分:2)

这是一个相当简单的方法:

select t.*
from table t
where donation <> cast(donation as int)

这会将捐赠转换成一个整数,从而消除分数。如果价值相等,那么原始捐赠就没有分数。如果他们不平等,那么美分领域就会有一些东西。

编辑:

自从我回答后,问题发生了变化。以上是所有分数为零的最简单。它很容易修改为最后一位数字:

select t.*
from table t
where donation * 10  <> cast(donation * 10 as int)