カテゴリ:

変換関数

CAST、 ::

あるデータ型の値を別のデータ型に変換します。CAST のセマンティクスは、対応する TO_ datatype 変換関数のセマンティクスと同じです。キャストが不可能な場合は、エラーが発生します。詳細については、個々の TO_ datatype 変換関数をご参照ください。

:: 演算子は、 CASTの代替構文を提供します。

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

TRY_CAST

構文

CAST( <source_expr> AS <target_data_type> )
  [ RENAME FIELDS | ADD FIELDS ]

<source_expr> :: <target_data_type>
Copy

引数

source_expr

異なるデータ型に変換される、サポートされているデータ型の式です。

target_data_type

式を変換するデータ型です。データ型が、 精度やスケール (数値/小数用)などの追加のプロパティをサポートする場合は、プロパティを含めることができます。

RENAME FIELDS

構造化 OBJECTs の場合、異なるキーと値のペアを使用するために OBJECT を変更することを指定します。元のオブジェクトの値は、新しいキーと値のペアにそれらが表示される順でコピーされます。

例については、 例: OBJECT 内のキー名の変更 をご参照ください。

ADD FIELDS

構造化 OBJECTs の場合、 OBJECT にキーと値のペアを追加することを指定します。

例については、 例: OBJECT へのキーの追加 をご参照ください。

新しく追加されたキーの値は NULL に設定されます。これらのキーに値を割り当てる場合は、 OBJECT_INSERT 関数を代わりに呼び出します。

使用上の注意

  • スケールが入力値を保持するのに十分でない場合、関数は値を丸めます。

  • 精度が入力値を保持するのに十分でない場合、関数はエラーを発生します。

  • Parquetファイルへのデータのアンロード中に、数値列が整数データ型の形式に明示的にキャストされる場合、Parquetファイル内にあるこれらの列のデータ型は INT です。詳細については、 明示的に数値列をParquetデータ型に変換する をご参照ください。

数値を含む文字列を、指定されたスケール(2)で小数に変換します。

SELECT CAST('1.2345' AS DECIMAL(15,2));
+---------------------------------+
| CAST('1.2345' AS DECIMAL(15,2)) |
|---------------------------------|
|                            1.23 |
+---------------------------------+
Copy

:: 表記を使用して、同じ文字列をスケール5の小数に変換します。

SELECT '1.2345'::DECIMAL(15,5);
+-------------------------+
| '1.2345'::DECIMAL(15,5) |
|-------------------------|
|                 1.23450 |
+-------------------------+
Copy

数値を整数に変換します。

SELECT CAST(1.56 AS INTEGER);
+-----------------------+
| CAST(1.56 AS INTEGER) |
|-----------------------|
|                     2 |
+-----------------------+
Copy

日付を含む文字列をタイムスタンプに変換します。

SELECT CAST('05-Mar-2014' AS TIMESTAMP);
+----------------------------------+
| CAST('05-MAR-2014' AS TIMESTAMP) |
|----------------------------------|
| 2014-03-05 00:00:00.000          |
+----------------------------------+
Copy