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.