すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:数学関数

最終更新日:Mar 27, 2025

SQL 分析機能は、データ開発に使用できる一般的な数学関数を備えています。ビジネス要件に基づいて数学関数を選択し、データを計算したり、データ型を変換したりできます。このトピックでは、開発を容易にするために、SQL 分析機能でサポートされている数学関数の構文、パラメーター、および例について説明します。

次の表に、SQL 分析機能でサポートされている数学関数を示します。

関数

説明

ABS

絶対値を計算します。

ACOS

逆余弦を計算します。

ATAN2

expr1 と expr2 の逆正接を計算します。

ASIN

逆正弦を計算します。

ATAN

逆正接を計算します。

CEIL

数値を繰り上げて、最も近い整数を返します。

CONV

ある記数法の数値を別の記数法の数値に変換します。

CORR

ピアソンの相関係数を計算します。

COS

余弦を計算します。

COSH

双曲線余弦を計算します。

COT

余接を計算します。

DEGREES

ラジアン値を度に変換します。

E

e の値を計算します。

EXP

指数値を計算します。

FLOOR

数値を繰り下げて、最も近い整数を返します。

FORMAT_NUMBER

数値を指定された形式の文字列に変換します。

LN

自然対数を計算します。

LOG

対数を計算します。

LOG10

底が 10 の数値の対数を計算します。

LOG2

底が 2 の数値の対数を計算します。

NEGATIVE

式の負の値を返します。

PI

π の値を計算します。

POSITIVE

式の値を返します。

POW

値の n 乗を計算します。

RADIANS

度をラジアン値に変換します。

RAND

乱数を返します。

ROUND

指定された小数点以下の桁数に丸められた値を返します。

SHIFTLEFT

値を指定された桁数だけ左にシフトします。

SHIFTRIGHT

値を指定された桁数だけ右にシフトします。

SHIFTRIGHTUNSIGNED

符号なし値を指定された桁数だけ右にシフトします。

SIGN

入力値の符号を返します。

SIN

正弦を計算します。

SINH

双曲線正弦を計算します。

SQRT

平方根を計算します。

TAN

正接を計算します。

TANH

双曲線正接を計算します。

ABS

  • 構文

    bigint|double|decimal abs(<number>)
  • 説明

    number の絶対値を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE、BIGINT、または DECIMAL です。入力値の型が STRING の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

    説明

    入力値の型が BIGINT で、BIGINT 型の最大値より大きい場合、DOUBLE 型の値が返されます。ただし、精度は失われる可能性があります。

  • 戻り値

    戻り値のデータ型は、入力パラメーターのデータ型によって異なります。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE、BIGINT、または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 null が返されます。
    select abs(null);
    -- 値 1 が返されます。
    select abs(-1);
    -- 値 1.2 が返されます。
    select abs(-1.2);
    -- 値 2.0 が返されます。
    select abs("-2");
    -- 値 1.2232083745629837E32 が返されます。
    select abs(122320837456298376592387456923748);
    -- tbl1 の id フィールドの絶対値を計算します。次の例は、SQL ステートメントで ABS 関数を呼び出す方法を示しています。ウィンドウ関数と集計関数以外の他のビルトイン関数は、同様の方法で使用されます。
    select abs(id) from tbl1;

ACOS

  • 構文

    double|decimal acos(<number>)
  • 説明

    number の逆余弦を計算します。

  • パラメーター

    number: 必須。値の範囲は -1 から 1 です。DOUBLE 型または DECIMAL 型の値。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    戻り値のデータ型は、入力パラメーターのデータ型によって異なります。値の範囲は 0 から π です。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が -1 から 1 の範囲外の場合、null が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 0.5155940062460905 が返されます。
    select acos("0.87");
    -- 値 1.5707963267948966 が返されます。
    select acos(0);
    -- 値 null が返されます。
    select acos(null);

ATAN2

  • 構文

    double atan2(<expr1>, <expr2>)
  • 説明

    expr1 と expr2 の逆正接を計算します。

  • パラメーター

    • expr1: 必須。値の型は DOUBLE です。入力値の型が STRING、BIGINT、または DECIMAL の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

    • expr2: 必須。DOUBLE 型の値。入力値の型が STRING、BIGINT、または DECIMAL の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型の値が返されます。戻り値の範囲は -π/2 から π/2 です。expr1 または expr2 の値が null の場合、null が返されます。

  • -- 値 0.0 が返されます。
    select atan2(0, 0);

ASIN

  • 構文

    double|decimal asin(<number>)
  • 説明

    number の逆正弦を計算します。

  • パラメーター

    number: 必須。値の範囲は -1 から 1 です。DOUBLE 型または DECIMAL 型の値。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    戻り値のデータ型は、入力パラメーターのデータ型によって異なります。戻り値の範囲は -π/2 から π/2 です。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が -1 から 1 の範囲外の場合、null が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 1.5707963267948966 が返されます。
    select asin(1);
    -- 値 -1.5707963267948966 が返されます。
    select asin(-1);
    -- 値 null が返されます。
    select asin(null);

ATAN

  • 構文

    double atan(<number>)
  • 説明

    number の逆正接を計算します。

  • パラメーター

    number: 必須。DOUBLE 型の値。入力値の型が STRING、BIGINT、または DECIMAL の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型の値が返されます。戻り値の範囲は -π/2 から π/2 です。number の値が null の場合、null が返されます。

  • -- 値 0.7853981633974483 が返されます。
    select atan(1);
    -- 値 -0.7853981633974483 が返されます。
    select atan(-1);
    -- 戻り値は null です。
    select atan(null);

CEIL

  • 構文

    bigint ceil(<value>)
  • 説明

    value を繰り上げて、最も近い整数を返します。

  • パラメーター

    value: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    BIGINT 型の値が返されます。number の値が null の場合、null が返されます。

  • -- 値 2 が返されます。
    select ceil(1.1);
    -- 値 -1 が返されます。
    select ceil(-1.1);
    -- 戻り値は null です。
    select ceil(null);

CONV

  • 構文

    string conv(<input>, bigint <from_base>, bigint <to_base>)
  • 説明

    ある記数法の数値を別の記数法の数値に変換します。

  • パラメーター

    • input: 必須。値は変換する整数で、STRING 型です。入力値の型が BIGINT または DOUBLE の場合、計算前に値は暗黙的に STRING 型の値に変換されます。

    • from_baseto_base: 必須。これらのパラメーターの値は 10 進数です。値は 2、8、10、または 16 にすることができます。入力値の型が STRING または DOUBLE の場合、計算前に値は暗黙的に BIGINT 型の値に変換されます。

  • 戻り値

    STRING 型の値が返されます。次のシナリオでは、値 null が返されます。

    • inputfrom_base、または to_base の値が null の場合、null が返されます。

    • 変換プロセスは 64 ビット精度で実行されます。オーバーフローが発生した場合、null が返されます。

    • input の値が負の値の場合、null が返されます。 input の値が小数の場合は、記数法の変換前に整数に変換されます。小数部分は破棄されます。

  • -- 値 12 が返されます。
    select conv('1100', 2, 10);
    -- 値 C が返されます。
    select conv('1100', 2, 16);
    -- 値 171 が返されます。
    select conv('ab', 16, 10);
    -- 値 AB が返されます。
    select conv('ab', 16, 16);
    -- 戻り値は null です。
    select conv('1100', null, 10);

CORR

  • 構文

    double corr(<col1>, <col2>)
  • 説明

    2 つのデータ列のピアソンの相関係数を計算します。

  • パラメーター

    col1col2: 必須。ピアソンの相関係数を計算する 2 つの列の名前。値の型は DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、または DECIMAL です。col1 列と col2 列のデータは、異なるデータ型にすることができます。

  • 戻り値

    DOUBLE 型の値が返されます。入力列の行に null 値がある場合、その行は計算に含まれません。

COS

  • 構文

    double|decimal cos(<number>)
  • 説明

    ラジアン値である number の余弦を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 2.6794896585028633e-8 が返されます。
    select cos(3.1415926/2);
    -- 値 -0.9999999999999986 が返されます。
    select cos(3.1415926);
    -- 戻り値は null です。
    select cos(null);

COSH

  • 構文

    double|decimal cosh(<number>)
  • 説明

    number の双曲線余弦を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 2.5091784169949913 が返されます。
    select cosh(3.1415926/2);
    -- 戻り値は null です。
    select cosh(null);

COT

  • 構文

    double|decimal cot(<number>)
  • 説明

    ラジアン値である number の余接を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 戻り値は 2.6794896585028643E-8 です。
    select cot(3.1415926/2);
    -- 戻り値は null です。
    select cot(null);

DEGREES

  • 構文

    double degrees(<number>) 
  • 説明

    この関数は、ラジアン値を度に変換します。

  • パラメーター

    number: 必須。値の型は DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、または STRING です。

  • 戻り値

    DOUBLE 型の値が返されます。number の値が null の場合、null が返されます。

  • -- 戻り値は 90.0 です。
    select degrees(1.5707963267948966);
    -- 戻り値は 0.0 です。
    select degrees(0);
    -- 戻り値は null です。
    select degrees(null);

E

  • 構文

    double e()
  • 説明

    e の値を計算します。

  • 戻り値

    DOUBLE 型の値が返されます。

  • -- 値 2.718281828459045 が返されます。
    select e();

EXP

  • 構文

    double|decimal exp(<number>)
  • 説明

    number の指数値を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 4.810477252069109 が返されます。
    select exp(3.1415926/2);
    -- 戻り値は null です。
    select exp(null);

FLOOR

  • 構文

    bigint floor(<number>)
  • 説明

    number の値を繰り下げて、 number の値以下の最も近い整数を返します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    BIGINT 型の値が返されます。number の値が null の場合、null が返されます。

  • -- 戻り値は 1 です。
    select floor(1.2);
    -- 戻り値は 0 です。
    select floor(0.1);
    -- 戻り値は -2 です。
    select floor(-1.2);
    -- 戻り値は -1 です。
    select floor(-0.1);
    -- 戻り値は 0 です。
    select floor(0.0);
    -- 戻り値は 0 です。
    select floor(-0.0);
    -- 戻り値は null です。
    select floor(null);

FORMAT_NUMBER

  • 構文

    string format_number(float|double|decimal <expr1>, <expr2>)
  • 説明

    この関数は、数値を指定された形式の文字列に変換します。

  • パラメーター

    • expr1: 必須。このパラメーターは、指定された形式に変換する式を指定します。DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、または STRING 型の値。

    • expr2: 必須。このパラメーターは、変換後の式の形式を指定します。パラメーターでは、保持する小数点以下の桁数を指定できます。パラメーターは、#,###,###.## のような形式にすることもできます。

  • 戻り値

    STRING 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • expr2 が 0 より大きい場合、値は小数点以下の指定された桁に丸められます。

    • expr2 が 0 に等しい場合、値に小数点または小数部分は含まれません。

    • expr2 が 0 未満または 340 より大きい場合、エラーが返されます。

    • expr1 または expr2 の値が null の場合、null が返されます。

  • -- 値 5.230 が返されます。
    select format_number(5.230134523424545456,3);
    -- 値 12,332.123 が返されます。
    select format_number(12332.123456, '#,###,###,###.###');
    -- 戻り値は null です。
    select format_number(null,3);

ISNAN

  • 構文

    boolean isnan(<expr>)
  • 説明

    expr の値が NaN かどうかを確認します。

  • パラメーター

    expr: 必須。DOUBLE 型の値。入力値の型が STRING、BIGINT、または DECIMAL の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    • expr の値が NaN の場合、True が返されます。それ以外の場合、False が返されます。

    • expr の値が null の場合、False が返されます。

  • -- 値 False が返されます。
    SELECT isnan(100.1);

LN

  • 構文

    double|decimal ln(<number>)
  • 説明

    number の自然対数を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が負の値または 0 の場合、null が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 1.144729868791239 が返されます。
    select ln(3.1415926);
    -- 戻り値は null です。
    select ln(null);

LOG

  • 構文

    double log(<base>, <x>)
  • 説明

    底が base の値である x の対数を計算します。

  • パラメーター

    • base: 必須。底。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

    • x: 必須。対数を計算する値。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • base または x の値が null の場合、null が返されます。

    • base または x の値が負の値または 0 の場合、null が返されます。

    • base の値が 1 の場合、null が返されます。値 1 はゼロ除算を引き起こします。

  • -- 値 4.0 が返されます。
    select log(2, 16);
    -- 戻り値は null です。
    select log(2, null);

LOG10

  • 構文

    double log10(<number>)
  • 説明

    底が 10 である number の対数を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、または STRING です。

  • 戻り値

    DOUBLE 型の値が返されます。number の値が 0、負の値、または null の場合、null が返されます。

  • -- 戻り値は null です。
    select log10(null);
    -- 戻り値は null です。
    select log10(0);
    -- 値 0.9030899869919435 が返されます。
    select log10(8);

LOG2

  • 構文

    double log2(<number>)
  • 説明

    底が 2 である number の対数を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、または STRING です。

  • 戻り値

    DOUBLE 型の値が返されます。number の値が 0、負の値、または null の場合、null が返されます。

  • -- 戻り値は null です。
    select log2(null);
    -- 戻り値は null です。
    select log2(0);
    -- 値 3.0 が返されます。
    select log2(8);

NEGATIVE

  • 構文

    TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL negative(TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL <expr>)
  • 説明

    expr の負の値を返します。

  • パラメーター

    expr: 必須。値は、TINYINT、SMALLINT、INT、BIGINT、DOUBLE、または DECIMAL 型の式です。

  • 戻り値

    expr の負の値が返されます。

  • -- 値 1 が返されます。
    SELECT negative(1);

PI

  • 構文

    double pi()
  • 説明

    この関数は、π の値を計算します。

  • 戻り値

    DOUBLE 型の値が返されます。

  • -- 値 3.141592653589793 が返されます。
    select pi();

POSITIVE

  • 構文

    TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL positive(TINYINT|SMALLINT|INT|BIGINT|DOUBLE|DECIMAL <expr>)
  • 説明

    expr の値を返します。

  • パラメーター

    expr: 必須。値は、TINYINT、SMALLINT、INT、BIGINT、DOUBLE、または DECIMAL 型の式です。

  • 戻り値

    expr の値が返されます。

  • -- 戻り値は 1 です。
    SELECT positive(1);

POW

  • 構文

    double|decimal pow(<x>, <y>)
  • 説明

    xy 乗、つまり x^y を計算します。

  • パラメーター

    • x: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

    • y: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • x または y の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • x または y の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • x または y の値が null の場合、null が返されます。

  • -- 値 65536.0 が返されます。
    select pow(2, 16);
    -- 戻り値は null です。
    select pow(2, null);

RADIANS

  • 構文

    double radians(<number>)
  • 説明

    この関数は、度をラジアン値に変換します。

  • パラメーター

    number: 必須。値の型は DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、または STRING です。

  • 戻り値

    DOUBLE 型の値が返されます。number の値が null の場合、null が返されます。

  • -- 戻り値は 1.5707963267948966 です。
    select radians(90);
    -- 値 0.0 が返されます。
    select radians(0);
    -- 戻り値は null です。
    select radians(null);

RAND

  • 構文

    double rand(bigint <seed>)
  • 説明

    DOUBLE 型の乱数を返します。値の範囲は 0 から 1 です。

  • パラメーター

    seed: オプション。値の型は BIGINT です。このパラメーターは、乱数シーケンスの開始点を決定する乱数シードを指定します。

    説明

    seed を使用して乱数シーケンスを決定できます。乱数シーケンスが seed によって決定されると、この関数の戻り値は固定されます。実行環境が同じで、seed 値が変更されない場合、戻り値は同じになります。異なる結果を取得するには、seed 値を変更する必要があります。

  • 戻り値

    DOUBLE 型の値が返されます。

  • -- 値 4.7147460303803655E-4 が返されます。
    select rand();
    -- 値 0.7308781907032909 が返されます。
    select rand(1);

ROUND

  • 構文

    double|decimal round(<number>[, bigint <decimal_places>])
  • 説明

    指定された小数点以下の桁数に丸められた数値を返します。

  • パラメーター

    • number: 必須。DOUBLE 型または DECIMAL 型の値。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

    • decimal_places: オプション。値は BIGINT 型の定数です。このパラメーターは、数値を丸める小数点以下の桁数を指定します。このパラメーターを設定しない場合、数値は 1 の位に丸められます。デフォルト値は 0 です。

      説明

      decimal_places の値は負の値にすることができます。負の値は、小数点から左に数えることを示し、小数部分は除外されます。decimal_places の値が整数部分の長さを超える場合、0 が返されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • decimal_places が BIGINT 型でない場合、エラーが返されます。

    • number または decimal_places の値が null の場合、null が返されます。

  • -- 値 125.0 が返されます。
    select round(125.315);
    -- 値 125.3 が返されます。
    select round(125.315, 1);
    -- 値 125.32 が返されます。
    select round(125.315, 2);
    -- 値 125.315 が返されます。
    select round(125.315, 3);
    -- 値 -125.32 が返されます。
    select round(-125.315, 2);
    -- 値 100.0 が返されます。
    select round(123.345, -2);
    -- 戻り値は null です。
    select round(null);
    -- 値 123.345 が返されます。
    select round(123.345, 4);
    -- 値 0.0 が返されます。
    select round(123.345, -4);

SHIFTLEFT

  • 構文

    int shiftleft(tinyint|smallint|int <number1>, int <number2>)
    bigint shiftleft(bigint <number1>, int <number2>)
  • 説明

    値を指定された桁数だけ左にシフトします (<<)。

  • パラメーター

    • number1: 必須。値の型は TINYINT、SMALLINT、INT、または BIGINT です。

    • number2: 必須。値の型は INT です。

  • 戻り値

    INT 型または BIGINT 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number1 の値の型が TINYINT、SMALLINT、INT、または BIGINT でない場合、エラーが返されます。

    • number2 の値の型が INT でない場合、エラーが返されます。

    • number1 または number2 の値が null の場合、null が返されます。

  • -- 値 4 が返されます。次のステートメントは、1 の 2 進値を 2 桁左にシフトします (1<<2,0001 が 0100 にシフトされます)。
    select shiftleft(1,2); 
    -- 値 32 が返されます。次のステートメントは、4 の 2 進値を 3 桁左にシフトします (4<<3,0100 が 100000 にシフトされます)。
    select shiftleft(4,3);
    -- 戻り値は null です。
    select shiftleft(null,2);

SHIFTRIGHT

  • 構文

    int shiftright(tinyint|smallint|int <number1>, int <number2>)
    bigint shiftright(bigint <number1>, int <number2>)
  • 説明

    値を指定された桁数だけ右にシフトします (>>)。

  • パラメーター

    • number1: 必須。値の型は TINYINT、SMALLINT、INT、または BIGINT です。

    • number2: 必須。値の型は INT です。

  • 戻り値

    INT 型または BIGINT 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number1 の値の型が TINYINT、SMALLINT、INT、または BIGINT でない場合、エラーが返されます。

    • number2 の値の型が INT でない場合、エラーが返されます。

    • number1 または number2 の値が null の場合、null が返されます。

  • -- 戻り値は 1 です。4 の 2 進値を 2 桁右にシフトします (4>>2, 1000 が 0001 にシフトされます)。
    select shiftright(4,2);
    -- 値 4 が返されます。次のステートメントは、32 の 2 進値を 3 桁右にシフトします (32>>3,100000 が 0100 にシフトされます)。
    select shiftright(32,3);
    -- 戻り値は null です。
    select shiftright(null,3);

SHIFTRIGHTUNSIGNED

  • 構文

    int shiftrightunsigned(tinyint|smallint|int <number1>, int <number2>)
    bigint shiftrightunsigned(bigint <number1>, int <number2>)
  • 説明

    符号なし値を指定された桁数だけ右にシフトします (>>>)。

  • パラメーター

    • number1: 必須。値は TINYINT、SMALLINT、INT、または BIGINT 型の整数です。

    • number2: 必須。値は INT 型の整数です。

  • 戻り値

    INT 型または BIGINT 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number1 の値の型が TINYINT、SMALLINT、INT、または BIGINT でない場合、エラーが返されます。

    • number2 の値の型が INT でない場合、エラーが返されます。

    • number1 または number2 の値が null の場合、null が返されます。

  • -- 戻り値は 2 です。次のステートメントは、8 の 2 進符号なし値を 2 桁右にシフトします (8>>>2,1000 が 0010 にシフトされます)。
    select shiftrightunsigned(8,2);
    -- 値 1073741820 が返されます。次のステートメントは、-14 の 2 進値を 2 桁右にシフトします (-14>>>2, 11111111 11111111 11111111 11110010 が 00111111 11111111 11111111 11111100 にシフトされます)。
    select shiftrightunsigned(-14,2);
    -- 戻り値は null です。
    select shiftrightunsigned(-14,null);

SIGN

  • 構文

    double sign(<number>)
  • 説明

    入力値の符号を返します。

  • パラメーター

    number: 必須。値の型は DOUBLE、BIGINT、INT、SMALLINT、TINYINT、FLOAT、DECIMAL、または STRING です。

  • 戻り値

    DOUBLE 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値が正の値の場合、1.0 が返されます。

    • number の値が負の値の場合、-1.0 が返されます。

    • number の値が 0 の場合、0.0 が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 -1.0 が返されます。
    select sign(-2.5);
    -- 値 1.0 が返されます。
    select sign(2.5);
    -- 値 0.0 が返されます。
    select sign(0);
    -- 戻り値は null です。
    select sign(null);

SIN

  • 構文

    double|decimal sin(<number>)
  • 説明

    ラジアン値である number の正弦を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 -0.3048106211022167 が返されます。
    select sin(60);
    -- 戻り値は null です。
    select sin(null);

SINH

  • 構文

    double|decimal sinh(<number>)
  • 説明

    number の双曲線正弦を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 5.343237290762231E12 が返されます。
    select sinh(30);
    -- 戻り値は null です。
    select sinh(null);

SQRT

  • 構文

    double|decimal sqrt(<number>)
  • 説明

    number の値の平方根を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。値は 0 より大きくなければなりません。値が 0 未満の場合、null が返されます。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 戻り値は 2.0 です。
    select sqrt(4);
    -- 戻り値は null です。
    select sqrt(null);

TAN

  • 構文

    double|decimal tan(<number>)
  • 説明

    ラジアン値である number の正接を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 -6.405331196646276 が返されます。
    select tan(30);
    -- 戻り値は null です。
    select tan(null);

TANH

  • 構文

    double|decimal tanh(<number>)
  • 説明

    number の双曲線正接を計算します。

  • パラメーター

    number: 必須。値の型は DOUBLE または DECIMAL です。入力値の型が STRING または BIGINT の場合、計算前に値は暗黙的に DOUBLE 型の値に変換されます。

  • 戻り値

    DOUBLE 型または DECIMAL 型の値が返されます。戻り値は、次のルールに基づいて異なります。

    • number の値の型が DOUBLE または DECIMAL の場合、同じ型の値が返されます。

    • number の値の型が STRING または BIGINT の場合、DOUBLE 型の値が返されます。

    • number の値が null の場合、null が返されます。

  • -- 値 1.0 が返されます。
    select tanh(30);
    -- 戻り値は null です。
    select tanh(null);