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.