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 |
+----------+-----+----------+-----------------------+