SQL ABS() 函数

SQL ABS() 函数

SQL ABS() 函数接受一个数值作为参数,并返回该数值对应的绝对值。

绝对值定义为数轴上某一点与零之间的距离,不考虑其方向。由于绝对值不考虑方向,所以它永远不会为负数。因此,如果传递的参数不是负数,则返回原始参数,但如果传递的参数为负数,则结果将是该参数的负数。

语法

以下是 SQL ABS() 函数的语法:

ABS(number)

其中 number 是我们需要找到绝对值的值。

示例

如果我们将一个正值作为参数传递给SQL的ABS()函数,它将返回相同的值如下所示 –

SELECT ABS(0.8)
AS Aboslute_Value

当我们运行上述程序时,它产生以下结果−

+----------------+
| Aboslute_Value |
+----------------+
| 0.8            |
+----------------+

示例

如果我们将一个负值作为参数传递给这个函数,它将返回相同的值但去掉负号,如下所示 –

SELECT ABS(-55787)
AS Aboslute_Value

在执行上述代码时,我们得到以下输出-

+----------------+
| Aboslute_Value |
+----------------+
| 55787          |
+----------------+

示例

如果我们将数学常数π作为参数传递给这个函数,该函数将返回其等效的常数值,如下所示:

SELECT ABS(PI())
AS Aboslute_Value

以下是上述代码的输出:

+------------------+
| Aboslute_Value   |
+------------------+
| 3.14159265358979 |
+------------------+

示例

如果传入的值为NULL,或者在发生错误时,该函数返回NULL。

SELECT ABS(NULL)
AS Aboslute_Value

上述代码的输出如下所示−

+----------------+
| Aboslute_Value |
+----------------+
| NULL           |
+----------------+

示例

如果我们将值以字符串的形式传递给这个函数,它会返回相同的值,但会去除负号(如果有的话)。

SELECT ABS('-225')
AS Aboslute_Value

以下是上述代码的输出结果-

+----------------+
| Aboslute_Value |
+----------------+
| 225            |
+----------------+

示例

如果传递给此函数的值既不为null也不是数值类型,它会抛出一个错误。

SELECT ABS('string')
AS Aboslute_Value

我们在执行上述代码时得到以下输出−

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to float.

示例

假设我们已经创建了一个名为CUSTOMERS的表,如下所示:

create table CUSTOMERS(ID INT NOT NULL, 
NAME VARCHAR(20) NOT NULL, 
AGE INT NOT NULL, 
ADDRESS CHAR(25), 
SALARY DECIMAL(18, 2), 
PRIMARY KEY(ID));
Commands completed successfully.

让我们将r值插入其中−

insert INTO CUSTOMERS VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS VALUES(7, 'Muffy', 24, 'Indore', 10000.00);
()
()
()
()
()
()
()

以下查询计算每个月从工资中扣除的所有客户的EPF(相当于基本工资的12%)−

SELECT SALARY, 
abs(SALARY*0.12) 
as EPF 
FROM customers;

生成的结果如下:

+----------+-----------+
| SALARY   | EPF       |
+----------+-----------+
|  2000.00 |  240.0000 |
|  1500.00 |  180.0000 |
|  2000.00 |  240.0000 |
|  6500.00 |  780.0000 |
|  8500.00 | 1020.0000 |
|  4500.00 |  540.0000 |
| 10000.00 | 1200.0000 |
+----------+-----------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程