如何使用SQL Server查找最接近零的值

use*_*991 3 sql sql-server numbers zero

假设我有一个可以包含各种数字的表格,例如它可能如下所示:

例A:MyTable -10,-3,5,10,

例B:MyTable -10,-5,3,10,

因此,如果我查询ExampleA中的表,我希望它返回"-3"(值壁橱为0)

同样,如果我查询ExampleB中的表,我希望它返回"3"(最接近0的值)

无论表中的数字如何,我总是希望找到最接近零的值,我该怎么做?

另外,我怎样才能选择哪个关系值(比如最接近的值可能是-3和3)?

Boh*_*ian 5

使用的组合min()abs():

select num
from mytable
where abs(num) = (select min(abs(num)) from mytable)
Run Code Online (Sandbox Code Playgroud)

要打破关系,将min()或max()应用于num以获得负面或正面,例如

为了得到平局的负面影响:

select min(num) num 
from mytable
where abs(num) = (select min(abs(num)) from mytable)
Run Code Online (Sandbox Code Playgroud)

为了获得平局:

select max(num) num
from mytable
where abs(num) = (select min(abs(num)) from mytable)
Run Code Online (Sandbox Code Playgroud)