1

我有一个包含一列双数据类型的表。我想通过与双精度值进行比较来选择行。如果双列中不存在精确值,我想获取包含相等或最接近/近似的双值的行。

select * 
from tablename 
where DoubleColumnName equal/approx "some double value"
4

3 回答 3

3

你可以用

SELECT * FROM tablename WHERE ABS(DoubleColumnName-$value)<1E-13

这里的1E-13意思是精度增量(你可以调整它,原因)和 $value 是搜索值

于 2013-09-27T11:44:22.413 回答
1

你的近似极限是多少。假设您对 +/- 0.5 的误差范围感到满意,您可以尝试以下操作:

select * from table where (double_value_from_database - SOME_DOUBLE_VALUE) < 0.5
于 2013-09-27T11:45:35.717 回答
0

使用BETWEEN关键字

SELECT * FROM tablename 
WHERE 
   DoubleColumnName BETWEEN "lowerBound" AND "UpperBound"
于 2013-09-27T11:47:15.613 回答