COT

Updated at:

Calculates the cotangent of number. The input value is in radians.

Syntax

double|decimal cot(<number>)

Parameters

number: Required. The data type must be DOUBLE or DECIMAL. If the input is a STRING or BIGINT value, it is implicitly converted to the DOUBLE type for the calculation. Note: If the parameter value is 0, a math overflow error (ODPS-0121145) occurs because cot(0) is infinity. To avoid this error, you can use a CASE WHEN statement in your query to handle the value 0 and return NULL.

Return value

Returns a value of the DOUBLE or DECIMAL type. The following rules apply:

  • If number is of the DOUBLE or DECIMAL type, a value of the same type is returned.

  • If number is of the STRING or BIGINT type, a value of the DOUBLE type is returned.

  • If the value of number is null, null is returned.

Sample data

This section provides sample source data and examples for you to understand how to use the function. In this topic, a table named mf_math_fun_t is created and data is inserted into the table. Sample statements:

CREATE TABLE IF NOT EXISTS mf_math_fun_t(
     int_data     INT,
     bigint_data  BIGINT,
     double_data  DOUBLE,
     decimal_data DECIMAL,
     float_data   FLOAT,
     string_data  STRING
    );
    
INSERT INTO mf_math_fun_t VALUES 
(null, -10, 0.525, 0.525BD, CAST(0.525 AS FLOAT), '10'),
(-20, null, -0.1, -0.1BD, CAST(-0.1 AS FLOAT), '-10'),
(0, -1, null, 20.45BD, CAST(-1 AS FLOAT), '30'),
(-40, 4, 0.89, null, CAST(0.89 AS FLOAT), '-30'),
(5, -50, -1, -1BD, null, '50'),
(-60, 6, 1.5, 1.5BD, CAST(1.5 AS FLOAT), '-50'),
(-1, -70, -7.5, -7.5BD, CAST(-7.5 AS FLOAT),null ),
(-80, 1, -10.2, -10.2BD, CAST(-10.2 AS FLOAT), '-1' ),
(9, -90, 2.58, 2.58BD, CAST(2.58 AS FLOAT), '0'),
(-100, 10, -5.8, -5.8BD, CAST(-5.8 AS FLOAT), '-90');

Query data from the mf_math_fun_t table. Sample statement:

SELECT * FROM mf_math_fun_t;
-- The following result is returned: 
+------------+-------------+-------------+--------------+------------+-------------+
| int_data   | bigint_data | double_data | decimal_data | float_data | string_data |
+------------+-------------+-------------+--------------+------------+-------------+
| NULL       | -10         | 0.525       | 0.525        | 0.525      | 10          |
| -20        | NULL        | -0.1        | -0.1         | -0.1       | -10         |
| 0          | -1          | NULL        | 20.45        | -1.0       | 30          |
| -40        | 4           | 0.89        | NULL         | 0.89       | -30         |
| 5          | -50         | -1.0        | -1           | NULL       | 50          |
| -60        | 6           | 1.5         | 1.5          | 1.5        | -50         |
| -1         | -70         | -7.5        | -7.5         | -7.5       | NULL        |
| -80        | 1           | -10.2       | -10.2        | -10.2      | -1          |
| 9          | -90         | 2.58        | 2.58         | 2.58       | 0           |
| -100       | 10          | -5.8        | -5.8         | -5.8       | -90         |
+------------+-------------+-------------+--------------+------------+-------------+

Examples with static data

-- Returns 2.6794896585028643E-8.
select cot(3.1415926/2);
-- Returns NULL.
select cot(null);

Examples with table data

The following command calculates the cotangent values based on the Sample data.

-- Disable strict mode.
set odps.sql.udf.strict.mode=false;
select cot(bigint_data) as bigint_new,cot(double_data) as double_new,cot(decimal_data) as decimal_new,cot(string_data) as string_new from mf_math_fun_t;

The following result is returned.

+-----------------------+--------------------+--------------------+----------------------+
| bigint_new            | double_new         | decimal_new        | string_new           |
+-----------------------+--------------------+--------------------+----------------------+
| -1.54235104535692     | 1.7264594764178474 | 1.7264594764178474 | 1.54235104535692     |
| NULL                  | -9.966644423259238 | -9.966644423259238 | -1.54235104535692    |
| -0.6420926159343308   | NULL               | -0.02965644140592836| -0.15611995216165922|
| 0.8636911544506167    | 0.8099792954471944 | NULL               | 0.15611995216165922  |
| 3.6778144508505695    | -0.6420926159343308| -0.6420926159343308| -3.6778144508505695  |
| -3.436353004180128    | 0.07091484430265245| 0.07091484430265245| 3.6778144508505695   |
| -0.8183574478651038   | -0.36954725630901636| -0.36954725630901636| NULL               |
| 0.6420926159343308    | -1.0205622016180353 | -1.0205622016180353 | -0.6420926159343308|
| 0.5012027833801532    | -1.5893944776331337 | -1.5893944776331337 | NULL                |
| 1.54235104535692      | 1.9059736612916494  | 1.9059736612916494  | 0.5012027833801532 |
+-----------------------+---------------------+---------------------+--------------------+

Related functions

COT is a mathematical function. For more information about other mathematical functions, see Mathematical functions.