Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Funktionsweise von ISNUMERIC() in SQL Server

In SQL Server können Sie ISNUMERIC() verwenden Funktion, um herauszufinden, ob ein Ausdruck numerisch ist oder nicht.

Die Funktion gibt 1 zurück, wenn der Ausdruck numerisch ist, und 0, wenn dies nicht der Fall ist.

Um diese Funktion zu verwenden, übergeben Sie einfach den Wert/Ausdruck an die Funktion, während Sie sie aufrufen.

Beispiel 1 – Numerischer Ausdruck

Hier ist ein Beispiel, um zu demonstrieren, was passiert, wenn Sie einen numerischen Ausdruck an diese Funktion übergeben.

SELECT ISNUMERIC(250) AS Result;

Ergebnis:

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

In diesem Fall ist der Wert numerisch und das Ergebnis ist 1.

Wir erhalten das gleiche Ergebnis, auch wenn der Wert als Zeichenfolge (in einfachen Anführungszeichen eingeschlossen) bereitgestellt wird.

SELECT ISNUMERIC('250') AS Result;

Ergebnis:

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

Beispiel 2 – Nicht numerischer Ausdruck

Folgendes passiert, wenn der Wert nicht ist numerisch.

SELECT ISNUMERIC('Hey!') AS Result;

Ergebnis:

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

Beispiel 3 – Ein Datenbankbeispiel

Hier ist ein Beispiel für die Verwendung von ISNUMERIC() in einem WHERE -Klausel beim Abfragen einer Datenbank:

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

Ergebnis:

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

Dies gibt die Anzahl aller Zeilen mit einer numerischen Postleitzahl zurück.

Unerwartete Ergebnisse? Wenn Nicht-Numerisch Numerisch IST

Einige Zeichen werden als Zahlen behandelt, auch wenn sie keine Zahl sind. Darauf müssen Sie achten, wenn Sie diese Funktion verwenden, da Sie sonst unerwartete Ergebnisse erhalten könnten.

Siehe Nicht-Zahlenzeichen, die positiv zurückgegeben werden, wenn ISNUMERIC() verwendet wird für eine Erklärung und Beispiele.