In SQL Server entsteht die Herausforderung, wenn versucht wird, nicht numerische Nvarchar-Daten in Ganzzahlen umzuwandeln. Um solche Szenarien effektiv zu bewältigen, ist es wichtig, einen Standardwert oder NULL anzugeben, der im Falle einer fehlgeschlagenen Konvertierung zurückgegeben wird.
Glücklicherweise bietet T-SQL eine Lösung für dieses Problem mit einer Kombination aus CAST und CASE-Anweisungen. Sehen wir uns an, wie es funktioniert:
DECLARE @text AS NVARCHAR(10)
Diese Zeile deklariert eine Variable namens „@text“ mit einer maximalen Länge von 10 Zeichen, sodass wir Nvarchar-Daten speichern können.
SET @text = '100'
Weiter , wird der Variablen „@text“ der Wert „100“ zugewiesen, was eine gültige Ganzzahldarstellung ist.
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Diese Zeile nutzt die CASE-Anweisung, um auszuwerten, ob der Wert von „@text“ numerisch ist oder nicht. Wenn 1 (True) zurückgegeben wird, konvertiert die CAST-Funktion „@text“ in eine Ganzzahl. Wenn es nicht numerisch ist, gibt die Anweisung NULL zurück.
Die Funktion ISNUMERIC spielt in diesem Prozess eine entscheidende Rolle. Es lohnt sich jedoch, die von Fedor Hajdu erwähnten Einschränkungen zu beachten, beispielsweise die Möglichkeit, Zeichenfolgen, die Symbole ($) oder Trennzeichen (.) enthalten, als numerisch zu behandeln. Dies ist ein entscheidender Gesichtspunkt bei der Arbeit mit bestimmten Datentypen.
Zusammenfassend lässt sich sagen, dass die Verwendung der CASE-Anweisung in Verbindung mit CAST und ISNUMERIC Entwicklern die mühelose Konvertierung von Nvarchar-Daten in Ganzzahlen ermöglicht und gleichzeitig potenzielle Konvertierungsfehler behebt und so die Sicherheit gewährleistet die Integrität und Genauigkeit ihrer Ergebnisse in T-SQL.
Das obige ist der detaillierte Inhalt vonWie kann man NVARCHAR mit einem Standardwert in T-SQL sicher in INT umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!