sql - 如何使用 SQL Server 找到最接近零的值

标签 sql sql-server numbers zero

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

示例A: 我的表 -10, -3, 5、 10,

示例 B: 我的表 -10, -5, 3、 10,

所以如果我查询 ExampleA 中的表,我希望它返回“-3”(接近 0 的值)

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

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

另外,我如何选择 tie 的值(例如最接近的值可能是 -3 和 3)?

最佳答案

使用 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)

关于sql - 如何使用 SQL Server 找到最接近零的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19967117/

相关文章:

c - 如何使用数学运算符将字符串转换为数字(整数或 float )

python - 如何在python中打印大数的所有数字?

c# - SSIS 2012 : is it possible to pass references to Package Objects to an external assembly?

php - mysql regex - 过滤后跟特定字符串的大于 XX 的数字

sql - group by 不分组聚合?

sql - db2函数中的raise_application_error

c# - SQL 服务器 CLR : how to call WCF Service In CLR SQL stored procedure in database project

sql - 如何在sql中使用 'exec'设置变量值

C:如何在没有 strtol 的情况下从字符串中提取数字

mysql - SQL插入选择自动增量变量