我应该如何查询数据中有小数的整数?
How should I query an integer where there are decimals in the data?
SELECT * FROM table1 WHERE spent>= '1000'
该查询仍会显示 598.99 和 230.909 等数字。我的问题是为什么当我要求搜索超过或等于 1000 时它会这样做。无论如何要查询所以它只显示等于和超过 1000?
您必须比较数字才能进行数字比较。
使用
WHERE CAST(spent AS numeric) >= 1000
发生这种情况是因为您的 '1000'
是一个文本值。另一个值也是(或转换为)文本,因此您最终会进行逐字节比较。
598.99
大于 1000
因为 5...
大于 1...
.
转换为数字类型以进行适当的比较:
SELECT * FROM table1 WHERE spent::numeric >= '1000'::numeric
或者简单地说:
SELECT * FROM table1 WHERE spent::numeric >= 1000
SELECT * FROM table1 WHERE spent>= '1000'
该查询仍会显示 598.99 和 230.909 等数字。我的问题是为什么当我要求搜索超过或等于 1000 时它会这样做。无论如何要查询所以它只显示等于和超过 1000?
您必须比较数字才能进行数字比较。
使用
WHERE CAST(spent AS numeric) >= 1000
发生这种情况是因为您的 '1000'
是一个文本值。另一个值也是(或转换为)文本,因此您最终会进行逐字节比较。
598.99
大于 1000
因为 5...
大于 1...
.
转换为数字类型以进行适当的比较:
SELECT * FROM table1 WHERE spent::numeric >= '1000'::numeric
或者简单地说:
SELECT * FROM table1 WHERE spent::numeric >= 1000