SQL - ATN2() 函数



SQL ATN2() 函数接受两个数值作为参数,即 x 和 y,并返回反正切值。参数的定义域必须为 (-∞, ∞) × (-∞, ∞),即两个参数都是所有实数的集合,结果的范围将为 [-π, π]。如果传递给此函数的值不在给定的定义域内,则会引发错误。

此函数返回的值以弧度表示,介于正 x 轴和从原点到笛卡尔平面中点 (y,x) 的直线之间,其中 x 和 y 是两个参数。结果的象限取决于参数的符号。

语法

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

ATN2(Y,X)

其中,Y 和 X 是指定的数值。

示例

如果我们将负值传递给第一个参数,并将正值传递给第二个参数,则此方法将返回负值。

这里,我们分别将 -9 和 8 作为 Y 和 X 传递。

SELECT ATN2(-9, 8) 
AS arc_tangent2

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

+--------------------+
| arc_tangent2       |
+--------------------+
| -0.844153986113171 |
+--------------------+

示例

如果我们将正值传递给第一个参数,并将负值传递给第二个参数,则此方法将返回正值。

这里,我们分别将 10 和 -12 作为 Y 和 X 传递。

SELECT ATN2(10, -12) 
AS arc_tangent2

以下是上述代码的输出:

+-------------------+
| arc_tangent2      |
+-------------------+
| 2.44685437739309  |
+-------------------+

示例

我们还可以将数学常数 PI 作为参数传递给此函数,它将返回其等效的 atn2 值。

在这里,我们尝试将 pi() 函数作为参数传递给 atn2() 函数,如下所示:

SELECT ATN2(pi(), pi())        
AS arc_tangent2

执行上述代码时,我们将获得以下输出:

+--------------------+
| arc_tangent2       |
+--------------------+
| 0.785398163397448  |
+--------------------+

示例

在这里,我们尝试将表达式 '8.3 + 0.87','76' 作为参数传递给函数

SELECT ATN2(8.3 + 0.87, 76) 
AS arc_tangent2

上述代码的输出如下:

+--------------------+
| arc_tangent2       |
+--------------------+
| 0.120077430993549  |
+--------------------+

示例

假设我们创建了一个名为 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.

让我们向其中插入一些值:

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);

以下查询计算所有客户的年龄和薪水的 atn2 值:

SELECT NAME, AGE, SALARY,
ATN2(AGE, SALARY) 
AS arc_salarytn2
FROM customers;

产生的结果如下:

+----------+-----+----------+-----------------------+
| NAME     | AGE | SALARY   | arc_salarytn2         |
+----------+-----+----------+-----------------------+
| Ramesh   |  32 |  2000.00 |  0.0159986348763435   |
| Khilan   |  25 |  1500.00 |  0.0166651237139407   |
| kaushik  |  23 |  2000.00 |  0.01149949308189     |
| Chaitali |  25 |  6500.00 |  0.00384613488106652  |
| Hardik   |  27 |  8500.00 |  0.0031764599048072   |
| Komal    |  22 |  4500.00 |  0.00488884993928742  |
| Muffy    |  24 | 10000.00 |  0.00239999539201593  |
+----------+-----+----------+-----------------------+
sql-numeric-functions.htm
广告