假设我有一张可以包含各种数字的表格,例如它可能如下所示:
例A: MyTable的 -10, -3, 5, 10,
例B: MyTable的 -10, -5, 3, 10,
因此,如果我查询ExampleA中的表,我希望它返回“-3”(值为0)
同样,如果我查询ExampleB中的表,我希望它返回“3”(最接近0的值)
我总是希望找到最接近零的值而不管表中的数字,我该怎么做?
另外,我怎样才能选择哪个关系值(比如最接近的值可能是-3和3)?
答案 0 :(得分:5)
使用min()
和abs()
的组合:
select num
from mytable
where abs(num) = (select min(abs(num)) from mytable)
要打破关系,将min()或max()应用于num以获得消极或积极的一面,例如
得到平局的负面影响:
select min(num) num
from mytable
where abs(num) = (select min(abs(num)) from mytable)
为了获得平局:
select max(num) num
from mytable
where abs(num) = (select min(abs(num)) from mytable)
答案 1 :(得分:3)