SELECT * FROM table1 WHERE spent>= '1000'
此查询仍然显示598.99和230.909等数字。我的问题是,当我要求搜索超过或等于1000时,为什么会这样做。无论如何要查询它只显示相等且超过1000?
答案 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