Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como ISNUMERIC() funciona no SQL Server


No SQL Server, você pode usar o ISNUMERIC() função para descobrir se uma expressão é numérica ou não.

A função retorna 1 se a expressão for numérica e 0 se não for.

Para usar esta função, basta passar o valor/expressão para a função enquanto a chama.


Exemplo 1 – Expressão Numérica


Aqui está um exemplo para demonstrar o que acontece quando você passa uma expressão numérica para esta função.
SELECT ISNUMERIC(250) AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 1        |
+----------+

Nesse caso, o valor é numérico e o resultado é 1.

Obtemos o mesmo resultado mesmo que o valor seja fornecido como uma string (entre aspas simples).
SELECT ISNUMERIC('250') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 1        |
+----------+

Exemplo 2 – Expressão não numérica


Veja o que acontece quando o valor não numérico.
SELECT ISNUMERIC('Hey!') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 0        |
+----------+

Exemplo 3 – Um exemplo de banco de dados


Aqui está um exemplo de uso de ISNUMERIC() em um WHERE cláusula ao consultar um banco de dados:
USE WideWorldImportersDW;
SELECT COUNT(*) AS [Count]
FROM Dimension.Customer
WHERE ISNUMERIC([Postal Code]) = 1;

Resultado:
+---------+
| Count   |
|---------|
| 402     |
+---------+

Isso retorna a contagem de todas as linhas com um código postal numérico.

Resultados inesperados? Quando Não Numérico É Numérico


Alguns caracteres são tratados como numéricos, mesmo quando não são um número. Isso é algo que você precisa estar ciente ao usar esta função, caso contrário, você poderá obter resultados que não espera.

Consulte Caracteres não numéricos que retornam positivos ao usar ISNUMERIC() para uma explicação e exemplos.