Dans SQL Server, le défi se pose lorsque l'on tente de convertir des données nvarchar non numériques en nombres entiers. Pour gérer efficacement de tels scénarios, il est essentiel de spécifier une valeur par défaut ou NULL à renvoyer en cas d'échec de la conversion.
Heureusement, T-SQL propose une solution à ce problème en utilisant une combinaison de CAST et Déclarations CASE. Explorons comment cela fonctionne :
DECLARE @text AS NVARCHAR(10)
Cette ligne déclare une variable nommée "@text" d'une longueur maximale de 10 caractères, nous permettant de stocker des données nvarchar.
SET @text = '100'
Suivant , la variable "@text" reçoit la valeur "100", qui est une représentation entière valide.
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Cette ligne utilise l'instruction CASE pour évaluer si la valeur de "@text" est numérique ou non. Si elle renvoie 1 (Vrai), la fonction CAST convertit "@text" en entier. Si ce n'est pas numérique, l'instruction renvoie NULL.
La fonction ISNUMERIC joue un rôle crucial dans ce processus. Cependant, il convient de noter les limitations mentionnées par Fedor Hajdu, comme sa possibilité de traiter les chaînes contenant des symboles ($) ou des séparateurs (.) comme des valeurs numériques. Il s'agit d'une considération cruciale lorsque vous travaillez avec des types de données spécifiques.
En conclusion, l'utilisation de l'instruction CASE, en conjonction avec CAST et ISNUMERIC, permet aux développeurs de convertir sans effort les données nvarchar en nombres entiers tout en gérant les échecs de conversion potentiels, garantissant ainsi l'intégrité et l'exactitude de leurs résultats dans 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!