Maison > base de données > tutoriel mysql > Comment convertir en toute sécurité des chaînes en entiers avec des valeurs par défaut dans T-SQL ?

Comment convertir en toute sécurité des chaînes en entiers avec des valeurs par défaut dans T-SQL ?

DDD
Libérer: 2025-01-03 01:05:39
original
732 Les gens l'ont consulté

How to Safely Cast Strings to Integers with Default Values in T-SQL?

Conversion de chaînes en entiers avec des valeurs par défaut dans T-SQL

Dans T-SQL, il est souvent nécessaire de convertir une chaîne (nvarchar ) valeur en un type de données entier (int). Toutefois, cette conversion peut échouer si la chaîne contient des caractères non numériques. Pour gérer de tels scénarios avec élégance, il devient nécessaire de renvoyer une valeur par défaut ou NULL si la conversion échoue.

Pour y parvenir, l'expression CASE, en conjonction avec la fonction ISNUMERIC(), peut être utilisée. ISNUMERIC() évalue si une chaîne représente une valeur numérique valide, renvoyant 1 si vrai et 0 si faux.

Syntaxe :

CASE WHEN ISNUMERIC(@variable) = 1 THEN CAST(@variable AS INT) ELSE NULL END
Copier après la connexion

Exemples :

Considérez ce qui suit exemple :

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, puisque « 100 » est un entier valide, la conversion réussit et renvoie la valeur 100. Dans le second cas, « XXX » n'est pas une valeur numérique, donc le La fonction ISNUMERIC() renvoie 0, provoquant le retour de l'expression CASE NULL.

Considérations :

Il convient de noter que ISNUMERIC() a certaines limitations. Par exemple, il peut renvoyer vrai pour les chaînes contenant des symboles monétaires ($), des séparateurs (,) ou (.) et des opérateurs arithmétiques ( , -). Par conséquent, une validation supplémentaire peut être nécessaire pour garantir l’intégrité de la conversion.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal