In T-SQL ist die Konvertierung von Nvarchar-Zeichenfolgen in Ganzzahlen für die Datenmanipulation von entscheidender Bedeutung. Wenn jedoch nicht-numerische Zeichen auftreten, können solche Konvertierungen fehlschlagen. Dies erhöht die Notwendigkeit, Konvertierungsfehler ordnungsgemäß zu behandeln.
Der CASE WHEN-Ausdruck bietet einen robusten Mechanismus zur Bewältigung dieses Szenarios. Die Syntax lautet wie folgt:
CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
So funktioniert es:
Dieser Ansatz stellt sicher, dass bei erfolgreicher Konvertierung von String in Integer der richtige Integer-Wert zurückgegeben wird. Wenn die Konvertierung jedoch aufgrund nicht numerischer Zeichen fehlschlägt, wird ein NULL-Wert zurückgegeben.
DECLARE @text AS NVARCHAR(10) -- Numeric string SET @text = '100' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- Non-numeric string SET @text = 'XXX' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Während die Funktion ISNUMERIC() bietet Da es sich um eine bequeme Möglichkeit handelt, nach numerischen Werten zu suchen, ist es wichtig, sich der Einschränkungen bewusst zu sein:
Trotz dieser Einschränkungen bietet CASE WHEN mit ISNUMERIC() und CAST() eine praktische Lösung zum Umwandeln von Zeichenfolgen in Ganzzahlen und Umgang mit nicht numerischen Fällen in T-SQL.
Das obige ist der detaillierte Inhalt vonWie kann ich NVARCHAR-Zeichenfolgen in T-SQL sicher in Ganzzahlen umwandeln und nicht numerische Werte verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!