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
廣告