Catégories :

Fonctions de conversion

CAST , ::

Convertit une valeur d’un type de données en un autre type de données. La sémantique de CAST est identique à celle des fonctions de conversion du TO_ datatype correspondant. Si la conversion n’est pas possible, une erreur est générée. Pour plus de détails, voir les fonctions de conversion individuelles du TO_ datatype.

L’opérateur :: fournit une syntaxe alternative pour CAST.

Voir aussi :

TRY_CAST

Syntaxe

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

<source_expr> :: <target_data_type>
Copy

Arguments

source_expr

Expression de tout type de données pris en charge à convertir en un type de données différent.

target_data_type

Le type de données vers lequel convertir l’expression. Si le type de données prend en charge des propriétés supplémentaires, telles que la précision et l’échelle (pour les nombres / décimales), les propriétés peuvent être incluses.

RENAME FIELDS

Pour des OBJECTs structurés, indique que vous souhaitez modifier l’OBJECT pour pouvoir utiliser des paires clé-valeur différentes. Les valeurs de l’objet d’origine sont copiées dans les nouvelles paires clé-valeur dans l’ordre dans lequel elles apparaissent.

Pour un exemple, voir Exemple : Modification des noms de clé d’un OBJECT.

ADD FIELDS

Pour des OBJECTs structurés, indique que vous souhaitez ajouter des paires clé-valeur à l’OBJECT.

Pour un exemple, voir Exemple : Ajout de clés à un OBJECT.

Les valeurs des nouvelles clés ajoutées seront définies sur NULL. Si vous souhaitez attribuer une valeur à ces clés, appelez plutôt la fonction OBJECT_INSERT.

Notes sur l’utilisation

  • Si l’échelle n’est pas suffisante pour maintenir la valeur d’entrée, la fonction arrondit la valeur.

  • Si la précision n’est pas suffisante pour maintenir la valeur d’entrée, la fonction signale une erreur.

  • Lorsque des colonnes numériques sont explicitement converties en formulaires du type de données entier pendant un déchargement de données vers des fichiers Parquet, le type de données de ces colonnes dans les fichiers Parquet est INT. Pour plus d’informations, voir Conversion explicite de colonnes numériques en types de données Parquet.

Exemples

Convertissez une chaîne contenant un nombre en nombre décimal avec l’échelle spécifiée (2) :

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

Convertissez la même chaîne en un nombre décimal avec l’échelle 5, en utilisant la notation :: :

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

Convertissez un nombre en entier :

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

Convertissez une chaîne contenant une date en un horodatage :

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