ASIN

Updated at:

Calculates the arcsine of a number and returns the result in radians.

Syntax

asin(<number>) → DOUBLE | DECIMAL

Parameters

number: Required. A DOUBLE or DECIMAL value in the range [-1, 1]. STRING and BIGINT values are implicitly converted to DOUBLE before calculation.

Return value

The return type matches the input type, except STRING and BIGINT inputs always return DOUBLE.

Input type Return type Condition
DOUBLE DOUBLE Value in [-1, 1]
DECIMAL DECIMAL Value in [-1, 1]
STRING DOUBLE Value in [-1, 1] after conversion
BIGINT DOUBLE Value in [-1, 1] after conversion
Any null Value outside [-1, 1]
Any null Input is null

The return value is in the range [-π/2, π/2].

Examples

Static examples

-- The value 1.5707963267948966 is returned.
select asin(1);
-- The value -1.5707963267948966 is returned.
select asin(-1);
-- The value null is returned.
select asin(null);

Sample data

Create the mf_math_fun_t table and insert sample data:

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 the table:

select * from mf_math_fun_t;
-- +------------+-------------+-------------+--------------+------------+-------------+
-- | 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         |
-- | 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         |
-- +------------+-------------+-------------+--------------+------------+-------------+

Table data examples

Calculate the arcsine of values from mf_math_fun_t. All values outside [-1, 1] return null.

select asin(bigint_data) as bigint_new, asin(double_data) as double_new, asin(decimal_data) as decimal_new, asin(string_data) as string_new from mf_math_fun_t;
-- +--------------------+---------------------+---------------------+---------------------+
-- | bigint_new         | double_new          | decimal_new         | string_new          |
-- +--------------------+---------------------+---------------------+---------------------+
-- | NULL               | 0.5527151130967832  | 0.5527151130967832  | NULL                |
-- | NULL               | -0.1001674211615598 | -0.1001674211615598 | NULL                |
-- | -1.5707963267948966| NULL                | NULL                | NULL                |
-- | NULL               | 1.0973451695228305  | NULL                | NULL                |
-- | NULL               | -1.5707963267948966 | -1.5707963267948966 | NULL                |
-- | NULL               | NULL                | NULL                | NULL                |
-- | NULL               | NULL                | NULL                | NULL                |
-- | 1.5707963267948966 | NULL                | NULL                | -1.5707963267948966 |
-- | NULL               | NULL                | NULL                | 0.0                 |
-- | NULL               | NULL                | NULL                | NULL                |
-- +--------------------+---------------------+---------------------+---------------------+

Related functions

ASIN is a mathematical function. For more information, see Mathematical functions.