Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment ISNUMERIC() fonctionne dans SQL Server

Dans SQL Server, vous pouvez utiliser le ISNUMERIC() fonction pour savoir si une expression est numérique ou non.

La fonction renvoie 1 si l'expression est numérique et 0 si ce n'est pas le cas.

Pour utiliser cette fonction, transmettez simplement la valeur/expression à la fonction tout en l'appelant.

Exemple 1 – Expression numérique

Voici un exemple pour montrer ce qui se passe lorsque vous transmettez une expression numérique à cette fonction.

SELECT ISNUMERIC(250) AS Result;

Résultat :

+----------+
| Result   |
|----------|
| 1        |
+----------+

Dans ce cas, la valeur est numérique et le résultat est 1.

Nous obtenons le même résultat même si la valeur est fournie sous forme de chaîne (entre guillemets simples).

SELECT ISNUMERIC('250') AS Result;

Résultat :

+----------+
| Result   |
|----------|
| 1        |
+----------+

Exemple 2 – Expression non numérique

Voici ce qui se passe lorsque la valeur est not numérique.

SELECT ISNUMERIC('Hey!') AS Result;

Résultat :

+----------+
| Result   |
|----------|
| 0        |
+----------+

Exemple 3 - Un exemple de base de données

Voici un exemple d'utilisation de ISNUMERIC() dans un WHERE clause lors de l'interrogation d'une base de données :

USE WideWorldImportersDW;
SELECT COUNT(*) AS [Count]
FROM Dimension.Customer
WHERE ISNUMERIC([Postal Code]) = 1;

Résultat :

+---------+
| Count   |
|---------|
| 402     |
+---------+

Cela renvoie le nombre de toutes les lignes avec un code postal numérique.

Des résultats inattendus ? Quand Non-Numérique EST Numérique

Certains caractères sont traités comme étant numériques, même s'ils ne sont pas des nombres. C'est quelque chose dont vous devez être conscient lorsque vous utilisez cette fonction, sinon vous pourriez obtenir des résultats inattendus.

Voir Caractères non numériques qui retournent positifs lors de l'utilisation de ISNUMERIC() pour une explication et des exemples.