La conversion d’un type de données en un autre est une opération courante que vous effectuerez lorsque vous travaillerez dans des bases de données.
Et SQL fournit un utilitaire utile connu sous le nom de CAST pour réaliser cette opération. Nous allons voir comment il fonctionne dans cet article.
Qu’est-ce que la fonction CAST en SQL ?
CAST nous permet de convertir un type de données en un autre. Elle est très utile pour concaténer des résultats de différents types de données. Elle nous aide également à effectuer des calculs sur deux types de données différents.
CAST ne modifie pas les données de la base de données. La conversion n’est valable que pendant la durée de vie de la requête. Mais il est possible de convertir et d’insérer dans une nouvelle colonne ou une nouvelle table.
Syntaxe de CAST en SQL
Voici la syntaxe de la fonction CAST :
CAST ( expression AS data_type [ ( length ) ])
Où ,
expression
est la requête telle que :id comme VARCHAR
data_type
est le type de données cible.length
détermine la longueur du type de données cible. Cette partie est facultative.
Comment utiliser la fonction CAST en SQL
Exemple de table
Créons une table store_locations
comme indiqué ci-dessous :
-- créer une table nommée store_locations
CREATE TABLE store_locations (
id INTEGER PRIMARY KEY,
store_name VARCHAR(10) NOT NULL,
store_id INTEGER NOT NULL,
code postal VARCHAR(10)
) ;
Où,
id
est la clé primaire.store_name
est le nom du magasin avec le type de donnéesVARCHAR
.store_id
est l’ID du magasin et unINTEGER
.postal_code
est l’adresse postale du magasin, de typeVARCHAR
.
Après avoir inséré quelques valeurs, notre tableau ressemble à ceci :
Comment convertir char
en int
en SQL
Voyons un exemple de conversion du type de données char (VARCHAR) en int.
Dans notre exemple, notre tâche consiste à générer une nouvelle colonne qui ajoute (additionne) le store_id
et le postal_code
pour générer un autre identifiant unique.
Rappelez-vous, store_id
est un INTEGER
, tandis que postal_code
est un VARCHAR
. Pour convertir postal_code
en un entier, nous pouvons utiliser CAST comme ceci :
-- convertir char en int
-- générer un nouvel identifiant en ajoutant l'identifiant du magasin et le code postal
select store_id, postal_code, store_id + cast(postal_code AS INTEGER) AS [StoreID-Postalcode] from store_locations
Sortie:
Comment convertir un int
en char
en SQL
Dans cet exemple, notre objectif est de combiner deux colonnes – store_name
et store_id
– pour générer une nouvelle colonne.
Rappelez-vous que store_name
est un VARCHAR
, tandis que store_id
est un INTEGER
.
Si nous essayons d’additionner int
et char
sans casting, quel serait le résultat ?
Nous obtiendrions une exception, comme indiqué ci-dessous :
Faisons un casting et voyons le résultat.
-- conversion de int en char
-- nom du magasin + ID du magasin
select store_name, store_id, store_name + ' - ' + cast(store_id AS VARCHAR) AS [Storename-storeId]
à partir de store_locations
Sortie :
Nous pouvons voir que notre sortie a été concaténée sans erreur.
Conclusion
La fonction CAST est très utile pour convertir des types de données et effectuer des calculs complexes.
Essayez ces commandes et expérimentez avec différents types de données comme la date.