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
Dans ce expression :
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
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!