Published on

December 19, 2019

Comprendre la fonction ISNUMERIC dans SQL Server

Aujourd’hui, nous allons discuter d’un comportement intéressant de la fonction ISNUMERIC dans SQL Server. En tant que professionnel de SQL Server, il est important de connaître les subtilités de cette fonction et la façon dont elle évalue différentes expressions.

La fonction ISNUMERIC est couramment utilisée pour déterminer si une expression donnée est une valeur numérique valide. Elle renvoie 1 si l’expression est numérique, et 0 si ce n’est pas le cas. Cependant, il existe certaines situations où la fonction peut produire des résultats inattendus.

Prenons un exemple:

DECLARE @NUMBER VARCHAR(10)
SET @NUMBER='12.45'
SELECT ISNUMERIC(@NUMBER) AS IS_NUMERIC

Dans ce cas, le résultat est 1, ce qui est attendu car l’expression ‘12.45’ est une valeur numérique valide.

Maintenant, exécutons le code suivant:

DECLARE @NUMBER VARCHAR(10)
SET @NUMBER='12e5'
SELECT ISNUMERIC(@NUMBER) AS IS_NUMERIC

Étonnamment, le résultat est également 1, même si la valeur d’entrée contient la chaîne ‘e’, qui n’est pas une valeur numérique valide. La fonction ISNUMERIC évalue l’expression écrite en notation scientifique comme étant vraie, ce qui donne une valeur de 1.

Alors, comment pouvons-nous éviter ce comportement inattendu? Une approche consiste à vérifier la présence d’autres valeurs alphanumériques avant de passer la valeur à la fonction ISNUMERIC. De cette manière, nous pouvons nous assurer que la fonction n’évalue que des expressions numériques valides.

En tant que professionnels de SQL Server, il est important d’être conscient de ces subtilités et de les gérer de manière appropriée dans notre code. Dans des situations comme celle-ci, où le comportement par défaut d’une fonction intégrée peut ne pas correspondre à nos besoins, nous devons envisager des solutions alternatives.

En comprenant le comportement de fonctions telles que ISNUMERIC, nous pouvons écrire un code plus robuste et fiable dans nos applications SQL Server.

Merci de votre lecture! Si vous avez des questions ou si vous souhaitez en savoir plus sur les concepts de SQL Server, n’hésitez pas à nous contacter.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.