SQL Convert Varchar en numérique

SQL Convert Varchar en numérique

La conversion est une tâche répandue pour les programmeurs et les ingénieurs de base de données. Cet article explorera comment convertir un type VARCHAR en un type numérique en SQL standard.

Il faut prendre en considération que lorsque nous disons SQL standard, nous entendons des techniques et des méthodes universellement adoptées par les moteurs de base de données relationnels.

Méthode de distribution SQL

Dans SQL standard, la dactylographie est accomplie en utilisant la fonction Cast (). La syntaxe de fonction est comme indiqué:

Cast (expression comme t_type [(longueur)]);

La fonction prend trois paramètres principaux:

  1. L'expression se réfère à toute valeur qui peut être convertie en un type spécifié.
  2. Le type t fait référence au type de données auquel la valeur spécifiée doit être convertie: le type de cible peut inclure tout type SQL standard pris en charge tel que INT64, numérique, bintumère, date, chaîne, octets, datetime, temps, structure, tableau, horodatage, etc.
  3. Longueur - Le troisième paramètre est la longueur. Il s'agit d'un paramètre facultatif qui spécifie la longueur du type cible.

SQL convertit varchar en int

Considérez l'exemple ci-dessous qui convertit le type VARCHAR en un type INT64.

Sélectionner Cast ('344' comme int64);

L'exemple de requête doit renvoyer la valeur convertie en int comme indiqué:

int4
------
344

SQL Convert Varchar en numérique

Pour convertir un type VARCHAR en un type numérique, modifiez le type cible comme numérique ou binnutérique comme indiqué dans l'exemple ci-dessous:

Sélectionnez Cast ('344' comme numérique) comme numérique;
SELECT CAST ('344' AS BIGNUMERIC) comme BIG_NUMERIC;

Les requêtes ci-dessus doivent renvoyer la valeur spécifiée convertie en numérique et numérique.

Notez que pour vous assurer que votre moteur de base de données prend en charge votre type de cible; Sinon, il renverra une erreur.

SQL convertit varchar en flotteur

Si vous avez Varchar à virgule flottante, vous pouvez le convertir en un type de flotteur, comme indiqué dans l'exemple ci-dessous:

Sélectionner le casting ('3.14159 'comme flottant) comme flottant;

Le code doit renvoyer le type de flotteur du varchar spécifié. L'exemple de sortie est comme indiqué ci-dessous:

FLOTTER
---------
3.14159
(1 ligne)

Casting SQL en toute sécurité

Vous êtes-vous demandé ce qui se passe si vous essayez de convertir une chaîne non numérique en un type numérique? Considérez l'exemple ci-dessous:

Sélectionnez Cast ('Hello' comme int64) comme var;

Si vous essayez d'exécuter la requête ci-dessus, il échouera car le type VARCHAR spécifié ne peut pas être converti en int.

Pour empêcher la requête d'échouer si la conversion n'est pas prise en charge, nous pouvons utiliser la méthode Safe_Cast.

La fonction se comporte de manière similaire à la fonction coulée, sauf qu'elle n'échoue pas si la conversion échoue. Au lieu de cela, il renvoie NULL comme indiqué dans l'exemple ci-dessous:

Sélectionnez Safe_Cast ('Hello' comme int64) comme nan;

Au lieu d'une erreur, la requête ci-dessus doit revenir:

"Nan": null

NOTE: La méthode Safe_Cast est prise en charge dans SQL standard. Certains moteurs de base de données peuvent implémenter les procédures différemment. Par exemple, dans SQL Server, la fonction safe_cast () est renommée Try_cast ou try_convert.

Conclusion

Dans ce tutoriel, nous avons discuté de la façon d'effectuer le casting de type dans SQL standard. Par exemple, nous avons discuté de la conversion de Varchar en int64, numérique, bintumère et float64. Nous avons également couvert comment effectuer un casting sûr pour les scénarios où le casting de type peut entraîner une erreur.