- カテゴリ:
CAST、 ::¶
あるデータ型の値を別のデータ型に変換します。CAST のセマンティクスは、対応する TO_ datatype 変換関数のセマンティクスと同じです。キャストが不可能な場合は、エラーが発生します。詳細については、個々の TO_ datatype 変換関数をご参照ください。データ型変換と TO_ datatype 変換関数の詳細については、 データ型の変換 をご参照ください。
:: 演算子は、 CASTの代替構文を提供します。
- こちらもご参照ください。
構文¶
引数¶
source_expr異なるデータ型に変換される、サポートされているデータ型の式です。
target_data_type式を変換するデータ型です。データ型が、 精度やスケール (数値/小数用)などの追加のプロパティをサポートする場合は、プロパティを含めることができます。
RENAME FIELDS構造化 OBJECTs の場合、異なるキーと値のペアを使用するために OBJECT を変更することを指定します。元のオブジェクトの値は、新しいキーと値のペアにそれらが表示される順でコピーされます。
例については、 例: OBJECT 値内のキー名の変更 をご参照ください。
ADD FIELDS構造化 OBJECTs の場合、 OBJECT にキーと値のペアを追加することを指定します。
例については、 例: OBJECT 値へのキーの追加 をご参照ください。
新しく追加されたキーの値は NULL に設定されます。これらのキーに値を割り当てる場合は、 OBJECT_INSERT 関数を代わりに呼び出します。
使用上の注意¶
スケールが入力値を保持するのに十分でない場合、関数は値を丸めます。
精度が入力値を保持するのに十分でない場合、関数はエラーを発生します。
Parquetファイルへのデータのアンロード中に、数値列が整数データ型の形式に明示的にキャストされる場合、Parquetファイル内にあるこれらの列のデータ型は INT です。詳細については、 明示的に数値列をParquetデータ型に変換する をご参照ください。
Collation specifications aren't retained when values are cast to text string data types (for example, VARCHAR and STRING). You can include collation specifications when you cast values (for example,
CAST(myvalue AS VARCHAR) COLLATE 'en-ai').::代替構文を使用する場合、RENAME FIELDSまたはADD FIELDSの引数を指定することはできません。
例¶
CAST の例では、以下のテーブルのデータを使用しています。
例では、変換後の値のデータ型を示すために SYSTEM$TYPEOF 関数を使用しています。
文字列を指定されたスケール(2)で数値に変換します。
:: 表記を使用して、同じ文字列をスケール5で数値に変換します。
数値を整数に変換します。整数の場合は精度とスケールが指定できないため、デフォルトは常に NUMBER(38, 0)です。
数値を文字列に変換します。
Convert a string to a VARCHAR value with a specified length:
If you are casting a value to the VARCHAR type with a specified length and the value exceeds that length, an error is returned:
タイムスタンプを日付に変換します。