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

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

Patricia Arquette
Libérer: 2024-12-30 01:51:10
original
179 Les gens l'ont consulté

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

TSQL : convertir des chaînes en entiers avec une valeur par défaut ou NULL

La conversion de chaînes en entiers est une tâche courante dans T-SQL. Cependant, lorsque la conversion n'est pas possible, une erreur peut survenir. Pour gérer de telles situations, T-SQL fournit une approche utile qui vous permet de renvoyer une valeur par défaut ou NULL si la conversion échoue.

Solution

La solution consiste à utiliser la fonction ISNUMERIC() pour vérifier si la chaîne peut être convertie en entier. Si la conversion est possible, la fonction CAST() est utilisée pour convertir la chaîne en entier. Sinon, une valeur par défaut ou NULL est renvoyée.

L'extrait de code suivant illustre cette approche :

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 cet exemple, la première instruction SELECT renvoie 100 car « 100 » peut être converti à un entier. La deuxième instruction SELECT renvoie NULL car « XXX » ne peut pas être converti en entier.

Considérations

Il est important de noter que la fonction ISNUMERIC() présente certaines limitations. Comme l'a souligné Fedor Hajdu, cela peut renvoyer vrai pour les chaînes contenant certains caractères, tels que $ (devise), , (séparateurs) et -. Par conséquent, il est recommandé d'utiliser ISNUMERIC() avec prudence lors de la validation des entrées pour les conversions entières.

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