SQL绝对值

在数学中,绝对值表示一个数值从0到0的大小或距离,而不考虑该值的符号。

在SQL中,我们可以访问abs()函数,该函数允许我们将负数转换为正值,同时保持正数不变。

绝对值是一种常见的情况,特别是在处理两个值之间的差异或计算基于坐标的结果时。

在本教程中,我们将探讨可用于在SQL中计算绝对值的各种方法。我们将使用MySQL作为选择的数据库引擎和Sakila示例数据库。但是,您可以随意使用您想要的任何数据集。

方法一:MySQL ABS()函数

在MySQL中计算绝对值的最常见和最直接的方法是使用ABS()函数。最好记住这个函数是ANSI SQL的一部分。因此,您可以在其他数据库(如PostgreSQL和SQL Server)中找到它。

该函数接受一个数值表达式作为参数,并返回其绝对值。语法如下:

SELECT ABS(numeric_expression) AS absolute_value;

举个基本用法的例子如下:

SELECT ABS(-15) AS absolute_value

可以猜到,前面的查询将提供的值转换为其正表示形式,如下所示:

absolute_value |

--------------+

15 |

方法2:在表中使用Abs()函数

我们还可以在表中使用abs()函数来计算所有提供的集合的绝对值。

考虑如下示例表:

创建数字数据表

value DECIMAL(10,2)

);

INSERT INTO numerical_data (value) VALUES

(10.5),

(-3.75),

(25.0),

(-7.2),

(12.8),

(-15.3);

在本例中,我们有一个包含数字数据的基本表,包括正负十进制值。

为了计算表中存储的所有行的绝对值,我们可以运行如下查询:

选择

ABS(value) AS absolute_values

从numerical_data;

这会将结果值转换为它们的正表示形式。

使用示例输出如下:

absolute_values |

---------------+

10.50 |

3.75 |

25.00 |

7.20 |

12.80 |

15.30 |

我们还可以通过在abs()函数中添加减号将值从正数转换为负数。

选择

-ABS(value) AS absolute_values

从numerical_data;

结果输出如下:

absolute_values |

---------------+

-10.50 |

-3.75 |

-25.00 |

-7.20 |

-12.80 |

-15.30 |

通过更改函数上的符号,可以将绝对值从正表示转换为负表示,反之亦然。

结论

在本教程中,我们学习了如何使用abs()函数在SQL中计算数值的绝对值。我们还使用-abs()函数,它可以将值转换为负绝对值。