Dans T-SQL, la conversion de chaînes nvarchar en entiers est cruciale pour la manipulation des données. Cependant, lorsque vous rencontrez des caractères non numériques, ces conversions peuvent échouer. Cela soulève la nécessité de gérer les erreurs de conversion avec élégance.
L'expression CASE WHEN fournit un mécanisme robuste pour gérer ce scénario. La syntaxe est la suivante :
CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Voici comment cela fonctionne :
Cette approche garantit que si la conversion de chaîne en entier réussit, la valeur entière correcte est renvoyée. Cependant, si la conversion échoue en raison de caractères non numériques, une valeur NULL est renvoyée.
DECLARE @text AS NVARCHAR(10) -- Numeric string SET @text = '100' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- Non-numeric string SET @text = 'XXX' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Alors que la fonction ISNUMERIC() propose un moyen pratique de vérifier les valeurs numériques, il est important d'être conscient de ses limites :
Malgré ces limitations, CASE WHEN avec ISNUMERIC() et CAST() fournit une solution pratique pour convertir des chaînes en entiers et gestion des cas non numériques en T-SQL.
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!