sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo funciona ISNUMERIC() en SQL Server

En SQL Server, puede usar ISNUMERIC() función para averiguar si una expresión es numérica o no.

La función devuelve 1 si la expresión es numérica y 0 si no lo es.

Para usar esta función, simplemente pase el valor/expresión a la función mientras la llama.

Ejemplo 1:expresión numérica

Aquí hay un ejemplo para demostrar lo que sucede cuando pasa una expresión numérica a esta función.

SELECT ISNUMERIC(250) AS Result;

Resultado:

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

En este caso, el valor es numérico y el resultado es 1.

Obtenemos el mismo resultado incluso si el valor se proporciona como una cadena (entre comillas simples).

SELECT ISNUMERIC('250') AS Result;

Resultado:

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

Ejemplo 2:expresión no numérica

Esto es lo que sucede cuando el valor es no numérico.

SELECT ISNUMERIC('Hey!') AS Result;

Resultado:

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

Ejemplo 3:un ejemplo de base de datos

Aquí hay un ejemplo del uso de ISNUMERIC() en un WHERE cláusula al consultar una base de datos:

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

Resultado:

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

Esto devuelve el recuento de todas las filas con un código postal numérico.

¿Resultados inesperados? Cuando no numérico es numérico

Algunos caracteres se tratan como numéricos, incluso cuando no son un número. Esto es algo que debe tener en cuenta al usar esta función, de lo contrario, podría obtener resultados que no espera.

Ver caracteres no numéricos que devuelven positivo al usar ISNUMERIC() para una explicación y ejemplos.