Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Fonction TRY_CAST

Mode de mise au point
Fonction TRY_CAST - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Par rapport à la fonction CAST, TRY_CAST tente d'abord de convertir l'expression dans le type spécifié. Si le casting échoue en raison d'erreurs de conversion, l'opération renvoie la valeur null. Si une conversion n'est pas explicitement autorisée, l'opération renvoie une erreur. Vous trouverez la liste des conversions possibles dans les notes d'utilisation ci-dessous. Par exemple, la tentative de conversion d'un booléen en horodatage n'est pas autorisée.

Syntaxe

TRY_CAST(expression AS type)

Arguments

expression

Expression qui correspond à une ou plusieurs valeurs, par exemple un nom de colonne ou un littéral. La conversion de valeurs null renvoie des valeurs null. L’expression ne peut pas contenir des chaînes vides.

type

L'un des types de données pris en charge. Pour obtenir la liste complète des types de données, consultezTypes de données. Pour obtenir la liste des paires de types de données source et de type de données cibles pris en charge, consultez les notes d'utilisation ci-dessous.

Type de retour

TRY_CAST renvoie une valeur du type de données spécifié par l'argument type. Si la conversion échoue, l'opération renvoie la valeur null.

Notes d’utilisation

Vous trouverez ci-dessous la liste des paires de types de données source et de type de données cible prises en charge par Amazon Redshift pour TRY_CAST.

BOOL

SMALLINT, INT, BIGINT, SUPER

PETITE MENTHE

BOOL, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

INT

BOOL, SMALLINT, BIGINT, DECIMAL, REAL, FLOAT, BOCHAR, TEXT, VARCHAR, SUPER

BIGINT

BOOL, SMALLINT, INT, DECIMAL, REAL, FLOAT, BOCHAR, TEXT, VARCHAR, SUPER

DÉCIMAL

SMALLINT, INT, BIGINT, REAL, FLOAT, BOCHAR, TEXT, VARCHAR, SUPER

RÉEL

SMALLINT, INT, BIGINT, DECIMAL, FLOAT, BOCHAR, TEXT, VARCHAR, SUPER

FLOTTEUR

SMALLINT, INT, BIGINT, DECIMAL, REAL, BOCHAR, TEXT, VARCHAR, SUPER

BPCHAR

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, HEURE, TIMETZ, SUPER

TEXTE

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, BOCHAR, VARCHAR, TIMESTAMP, DATE, HEURE, HEURES, SUPER

VARCHAR

SMALLINT, INT, BIGINT, DÉCIMAL, RÉEL, FLOAT, BOCHAR, TEXTE, HORODATAGE, HORODATAGE, DATE, HEURE, HEURES, SUPER

HORODATAGE

BPCHAR, TEXTE, VARCHAR, HORODATAGE, DATE, HEURE

HORODATAGE TZ

BPCHAR, TEXTE, VARCHAR, HORODATAGE, DATE, HEURE, HEURES

DATE

BPCHAR, TEXTE, VARCHAR, HORODATAGE, TIMESTAMPTZ

HEURE

BPCHAR, TEXTE, VARCHAR

TIMETZ

BPCHAR, TEXTE, VARCHAR

SUPER

SUPER peut être converti en n'importe quel autre type de données, à l'exception de DATE, TIME, TIMETZ, TIMESTAMP et TIMESTAMPTZ.

Exemples

L'exemple suivant transforme une STRING en INTEGER.

SELECT TRY_CAST('123' AS INT); int ---- 123

L'exemple suivant renvoie la valeur null. La conversion d'une STRING en INTEGER est autorisée afin que TRY_CAST ne renvoie pas d'erreur, mais « foo » n'est pas un entier, donc la fonction renvoie null.

SELECT TRY_CAST('foo' AS INT)

L'exemple suivant renvoie une erreur, car la conversion d'un BOOLEAN en TIMESTAMP n'est pas autorisée.

SELECT TRY_CAST(true as timestamp);

Comme TRY_CAST renvoie la valeur null au lieu de renvoyer immédiatement une erreur en cas d'échec de la conversion, vous pouvez utiliser TRY_CAST pour filtrer les données non valides. Prenons l'exemple suivant, où une ligne non valide est filtrée en raison d'un échec de conversion dans la colonne d'âge d'Akua Mansa.

CREATE TABLE IF NOT EXISTS student_data( name VARCHAR(100) NOT NULL, age VARCHAR(3) NOT NULL, enrollment_date DATE NOT NULL); INSERT INTO student_data (name, age, enrollment_date) VALUES ('Alejandro Rosalez', '10', '01/01/2000'), ('Akua Mansa', 'Ten', '01/01/2000'); SELECT * FROM student_data WHERE TRY_CAST(age AS INT) IS NOT NULL; --Akua is not returned. name | age | enrollment_date -------------------+-----+----------------- Alejandro Rosalez | 10 | 01/01/2000

Rubrique suivante :

Chaînes de format datetime

Rubrique précédente :

TO_NUMBER

Sur cette page

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.