SQL - ATAN() 函式



SQL ATAN() 函式計算數值的反正切。此函式接受單個數值作為引數。引數的定義域必須為 (-∞, ∞),即所有實數的集合,結果的範圍將為 [-π/2, π/2]。如果傳遞給此函式的值不在給定的定義域內,則會引發錯誤。

正如我們已經知道的,三角函式中的正切函式定義為正弦函式與餘弦函式的比率;但是反正切函式定義為其反函式,其中正切函式的定義域成為反正切函式的值域,反之亦然。

語法

以下是 SQL ATAN() 函式的語法:

ATAN(number)

其中,number 是我們需要計算反正切的值。

示例

如果我們傳遞一個正值作為引數,則此函式返回其等效的正值反正切值,如下所示:

SELECT ATAN(0.8)
AS Arctan_Value

執行以上程式後,將產生以下結果:

+-------------------+
| Arctan_Value      |
+-------------------+
| 0.674740942223553 |
+-------------------+

示例

如果我們將負值作為引數傳遞給此函式,則此函式返回其等效的負反正切值,如下所示:

SELECT ATAN(-0.5)
AS Arctan_Value

執行以上程式碼後,我們將得到以下輸出:

+--------------------+
| Arctan_Value       |
+--------------------+
| -0.463647609000806 |
+--------------------+

示例

如果傳遞的值為 NULL,則此函式返回 NULL。

SELECT ATAN(NULL)
AS Arctan_Value

以下是以上程式碼的輸出:

+-------------------+
| Arctan_Value      |
+-------------------+
| NULL              |
+-------------------+

示例

0 的反正切值為 0。

SELECT ATAN(0)
AS Arctan_Value

以上程式碼的輸出如下:

+-------------------+
| Arctan_Value      |
+-------------------+
| 0                 |
+-------------------+

示例

當我們計算一個數字的反正切值並將結果傳遞給 tan() 函式時,最終結果近似等於原始數字。

SELECT ATAN(1)
AS Arctan_Value

產生的結果如下所示:

+-------------------+
| Arctan_Value      |
+-------------------+
| 0.785398163397448 |
+-------------------+

現在,我們嘗試將反正切函式獲取的值傳遞給 tan() 函式:

SELECT TAN(0.785398163397448)
AS tan_Value

獲得的結果如下:

+--------------------+
| tan_Value          |
+--------------------+
| 0.999999999999999  |
+--------------------+

示例

假設我們建立了一個名為 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);

以下查詢計算所有客戶工資的反正切值:

SELECT NAME,AGE,SALARY, 
ATAN(SALARY) 
AS arc_salarytan
FROM customers;

產生的結果如下:

+----------+-----+----------+--------------------+
| NAME     | AGE | SALARY   | arc_salarytan      |
+----------+-----+----------+--------------------+
| Ramesh   |  32 |  2000.00 | 1.57029632683656   |
| Khilan   |  25 |  1500.00 | 1.570129660227     |
| kaushik  |  23 |  2000.00 | 1.57029632683656   |
| Chaitali |  25 |  6500.00 | 1.57064248064226   |
| Hardik   |  27 |  8500.00 | 1.57067867973662   |
| Komal    |  22 |  4500.00 | 1.57057410457633   |
| Muffy    |  24 | 10000.00 | 1.57069632679523   |
+----------+-----+----------+--------------------+
sql-numeric-functions.htm
廣告