- カテゴリ:
半構造化データ関数と構造化データ関数 (キャスト)
AS_DECIMAL , AS_NUMBER¶
VARIANT 値を固定小数点 NUMBER 値にキャストします。精度とスケールは任意です。この関数は浮動小数点値をキャストしません。
AS_DECIMAL は、 AS_NUMBER の同義語です。
DECIMAL データ型は NUMBER データ型と同義です。
- こちらもご参照ください。
構文¶
AS_DECIMAL( <variant_expr> [ , <precision> [ , <scale> ] ] )
AS_NUMBER( <variant_expr> [ , <precision> [ , <scale> ] ] )
引数¶
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));
VARIANT 値を NUMBER 値にキャストするには、クエリで AS_NUMBER 関数を使用します。
SELECT AS_NUMBER(number1, 6, 3) number_value
FROM as_number_example;
+--------------+
| NUMBER_VALUE |
|--------------|
| 2.340 |
+--------------+