SQL ATN2() 函数

SQL ATN2() 函数

SQL ATN2() 函数接受两个数值参数 x 和 y,并返回其反正切值。参数的定义域必须为 (-∞, ∞) × (-∞, ∞),即两个参数均为实数。返回值的值域为 [-π, π]。如果传递给该函数的值不在给定的定义域内,则会抛出错误。

该函数返回的值是以弧度表示的,其值大小是从 x 轴正半轴到笛卡尔坐标系中 (y, x) 点的线之间的夹角。结果的象限取决于参数的符号。

语法

下面是 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.

让我们将 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);

以下查询计算了所有客户的年龄和薪资的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  |
+----------+-----+----------+-----------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程