カテゴリ:

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

AS_DECIMAL , AS_NUMBER

オプションの精度とスケールを使用して、 VARIANT 値を固定小数点10進数にキャストします(浮動小数点値とは一致しない)。

AS_NUMBER は、 AS_DECIMALの同義語です。

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

AS_<object_type>AS_DOUBLE , AS_REALAS_INTEGER

構文

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

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

引数

バリアント式

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

精度

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

スケール

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

使用上の注意

  • デフォルトの 精度38 であり、 スケール0 です。

  • スケールを縮小するとこの関数は四捨五入され、範囲外エラーが発生する可能性があります。

これは、関数の使用方法を示しています。

テーブルとデータを作成します。

CREATE TABLE multiple_types (
    binary1 VARIANT,
    date1 VARIANT,
    decimal1 VARIANT,
    time1 VARIANT,
    timestamp1 VARIANT
    );
INSERT INTO multiple_types 
     (binary1, date1, decimal1, time1, timestamp1)
   SELECT 
     TO_VARIANT(TO_BINARY('F0A5')),
     TO_VARIANT(TO_DATE('2018-10-10')), 
     TO_VARIANT(TO_DECIMAL(1.23, 6, 3)),
     TO_VARIANT(TO_TIME('12:34:56')),
     TO_VARIANT(TO_TIMESTAMP_NTZ('2018-10-10 12:34:56'))
     ;

クエリを実行します。

SELECT AS_DECIMAL(decimal1, 6, 3) AS "Decimal" FROM multiple_types;

出力:

+---------+
| Decimal |
|---------|
|   1.230 |
+---------+