Maison > base de données > tutoriel mysql > Comment convertir en toute sécurité des chaînes NVARCHAR en entiers dans T-SQL et gérer les erreurs de conversion ?

Comment convertir en toute sécurité des chaînes NVARCHAR en entiers dans T-SQL et gérer les erreurs de conversion ?

Linda Hamilton
Libérer: 2024-12-31 02:05:09
original
422 Les gens l'ont consulté

How to Safely Cast NVARCHAR Strings to Integers in T-SQL and Handle Conversion Errors?

Conversion de chaînes en entiers et gestion des échecs de conversion

Dans T-SQL, nous pouvons rencontrer des scénarios dans lesquels nous devons convertir un type de données nvarchar à un entier mais gère les cas où la conversion échoue. Une méthode pour y parvenir consiste à combiner la fonction CAST et la fonction ISNUMERIC().

Conversion avec une valeur par défaut

Pour convertir une chaîne nvarchar en un entier et renvoyer une valeur par défaut si la conversion échoue, nous pouvons utiliser l'instruction CASE comme suit :

SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE <default value> END
Copier après la connexion

Dans ce expression :

  • @text est la variable nvarchar à convertir.
  • ISNUMERIC(@text) = 1 vérifie si la chaîne peut être convertie en entier.
  • Si la conversion réussit, la fonction CAST convertit @text en entier.
  • Si la conversion échoue, la valeur par défaut spécifiée est renvoyé à la place.

Exemple

Considérons l'exemple suivant :

DECLARE @text AS NVARCHAR(10)

SET @text = '100'
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
-- returns 100

SET @text = 'XXX'
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
-- returns NULL
Copier après la connexion

Dans le premier cas, la conversion est réussie, et 100 sont retournés. Dans le second cas, la chaîne « XXX » ne peut pas être convertie et NULL est renvoyé comme valeur par défaut.

Gestion des limitations d'ISNUMERIC()

Il convient de noter que ISNUMERIC() peut renvoyer true pour certaines chaînes qui ne sont pas des entiers valides, telles que celles contenant des symboles monétaires, des points décimaux ou des signes /-. Il est donc conseillé de valider la chaîne de manière plus approfondie avant de la lancer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal