カテゴリ:

半構造化データ関数と構造化データ関数 (キャスト)

AS_DECIMAL , AS_NUMBER

VARIANT 値を固定小数点 NUMBER 値にキャストします。精度とスケールは任意です。この関数は浮動小数点値をキャストしません。

AS_DECIMAL は、 AS_NUMBER の同義語です。

DECIMAL データ型は NUMBER データ型と同義です。

こちらもご参照ください。

AS_<オブジェクト型>AS_DOUBLE , AS_REALAS_INTEGER

構文

AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )

AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
Copy

引数

variant_expr

VARIANT型の値に評価される式です。

precision

保存する10進数の有効数字です。

デフォルトは 38 です。

scale

小数点以下の有効数字です。

デフォルトは 0 です。

戻り値

この関数は、型 NUMBER または NULL の値を返します。

  • variant_expr 引数にある値の型が DECIMAL か NUMBER の場合、関数は NUMBER 型の値を返します。

  • variant_expr 引数の値の型と出力値の型が一致しない場合、関数は NULL を返します。

  • variant_expr 引数が NULL の場合、関数は NULL を返します。

使用上の注意

スケールを小さくするとこの関数は結果を丸めるため、範囲外のエラーが発生する可能性があります。

テーブルを作成し、そこにデータをロードします。

CREATE OR REPLACE TABLE as_number_example (number1 VARIANT);

INSERT INTO as_number_example (number1)
  SELECT TO_VARIANT(TO_NUMBER(2.34, 6, 3));
Copy

VARIANT 値を NUMBER 値にキャストするには、クエリで AS_NUMBER 関数を使用します。

SELECT AS_NUMBER(number1, 6, 3) number_value
  FROM as_number_example;
Copy
+--------------+
| NUMBER_VALUE |
|--------------|
|        2.340 |
+--------------+