Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come funziona ISNUMERIC() in SQL Server

In SQL Server puoi utilizzare ISNUMERIC() funzione per scoprire se un'espressione è numerica o meno.

La funzione restituisce 1 se l'espressione è numerica e 0 in caso contrario.

Per utilizzare questa funzione, passa semplicemente il valore/l'espressione alla funzione mentre la chiami.

Esempio 1 – Espressione numerica

Ecco un esempio per dimostrare cosa succede quando passi un'espressione numerica a questa funzione.

SELECT ISNUMERIC(250) AS Result;

Risultato:

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

In questo caso, il valore è numerico e il risultato è 1.

Otteniamo lo stesso risultato anche se il valore è fornito come una stringa (racchiusa tra virgolette singole).

SELECT ISNUMERIC('250') AS Result;

Risultato:

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

Esempio 2 – Espressione non numerica

Ecco cosa succede quando il valore è non numerico.

SELECT ISNUMERIC('Hey!') AS Result;

Risultato:

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

Esempio 3:un esempio di database

Ecco un esempio di utilizzo di ISNUMERIC() in un WHERE clausola durante l'interrogazione di un database:

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

Risultato:

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

Questo restituisce il conteggio di tutte le righe con un codice postale numerico.

Risultati imprevisti? Quando non numerico È numerico

Alcuni caratteri vengono trattati come numerici, anche quando non sono un numero. Questo è qualcosa di cui devi essere consapevole quando usi questa funzione, altrimenti potresti ottenere risultati che non ti aspetti.

Consulta i caratteri non numerici che restituiscono positivi quando si utilizza ISNUMERIC() per una spiegazione ed esempi.