我应该如何查询数据中有小数的整数?

时间:2016-09-09 10:45:36

标签: postgresql comparison-operators

SELECT * FROM table1 WHERE spent>= '1000'

此查询仍然显示598.99和230.909等数字。我的问题是,当我要求搜索超过或等于1000时,为什么会这样做。无论如何要查询它只显示相等且超过1000?

2 个答案:

答案 0 :(得分:0)

您必须比较数字才能获得数字比较。

使用

WHERE CAST(spent AS numeric) >= 1000

答案 1 :(得分:0)

这是因为您的'1000'是文本值。另一个值也是(或转换为)文本,因此您最终会进行每字节字节比较。

598.99大于1000,因为5...大于1...

转换为数字类型以进行适当的比较:

SELECT * FROM table1 WHERE spent::numeric >= '1000'::numeric

或者简单地说:

SELECT * FROM table1 WHERE spent::numeric >= 1000