TSQL: Umwandeln von Zeichenfolgen in Ganzzahlen mit Standardwert oder NULL
Das Umwandeln von Zeichenfolgen in Ganzzahlen ist eine häufige Aufgabe in T-SQL. Wenn die Konvertierung jedoch nicht möglich ist, kann ein Fehler auftreten. Um solche Situationen zu bewältigen, bietet T-SQL einen nützlichen Ansatz, der es Ihnen ermöglicht, einen Standardwert oder NULL zurückzugeben, wenn die Konvertierung fehlschlägt.
Lösung
Die Lösung beinhaltet die Verwendung die Funktion ISNUMERIC(), um zu prüfen, ob die Zeichenfolge in eine Ganzzahl konvertiert werden kann. Wenn die Konvertierung möglich ist, wird die Funktion CAST() verwendet, um die Zeichenfolge in eine Ganzzahl umzuwandeln. Andernfalls wird ein Standardwert oder NULL zurückgegeben.
Der folgende Codeausschnitt demonstriert diesen Ansatz:
DECLARE @text AS NVARCHAR(10) SET @text = '100' SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- returns 100 SET @text = 'XXX' SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- returns NULL
In diesem Beispiel gibt die erste SELECT-Anweisung 100 zurück, da „100“ konvertiert werden kann zu einer ganzen Zahl. Die zweite SELECT-Anweisung gibt NULL zurück, da „XXX“ nicht in eine Ganzzahl konvertiert werden kann.
Überlegungen
Es ist wichtig zu beachten, dass die Funktion ISNUMERIC() einige Einschränkungen aufweist. Wie Fedor Hajdu betonte, kann es für Zeichenfolgen, die bestimmte Zeichen enthalten, wie z. B. $ (Währung), , (Trennzeichen) und -, „true“ zurückgeben. Daher wird empfohlen, ISNUMERIC() bei der Validierung von Eingaben für Ganzzahlkonvertierungen mit Vorsicht zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann man Strings in T-SQL mit Standardwerten oder NULL sicher in Ganzzahlen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!