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.