Umwandeln von Zeichenfolgen in Ganzzahlen mit Standardwerten in T-SQL
In T-SQL besteht häufig die Notwendigkeit, eine Zeichenfolge (nvarchar) umzuwandeln )-Wert in einen Integer-Datentyp (int) umwandeln. Diese Konvertierung kann jedoch fehlschlagen, wenn die Zeichenfolge nicht numerische Zeichen enthält. Um solche Szenarien reibungslos zu bewältigen, ist es notwendig, einen Standardwert oder NULL zurückzugeben, wenn die Konvertierung nicht erfolgreich ist.
Um dies zu erreichen, kann der CASE-Ausdruck in Verbindung mit der Funktion ISNUMERIC() verwendet werden. ISNUMERIC() wertet aus, ob eine Zeichenfolge einen gültigen numerischen Wert darstellt, und gibt 1 zurück, wenn wahr, und 0, wenn falsch.
Syntax:
CASE WHEN ISNUMERIC(@variable) = 1 THEN CAST(@variable AS INT) ELSE NULL END
Beispiele:
Bedenken Sie Folgendes Beispiel:
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
Da im ersten Fall „100“ eine gültige Ganzzahl ist, ist die Konvertierung erfolgreich und gibt den Wert 100 zurück. Im zweiten Fall ist „XXX“ kein numerischer Wert, daher ist die Konvertierung erfolgreich und gibt den Wert 100 zurück Die Funktion ISNUMERIC() gibt 0 zurück, wodurch der CASE-Ausdruck zurückgegeben wird NULL.
Überlegungen:
Es ist erwähnenswert, dass ISNUMERIC() bestimmte Einschränkungen hat. Beispielsweise kann es „true“ für Zeichenfolgen zurückgeben, die Währungssymbole ($), Trennzeichen (,) oder (.) und arithmetische Operatoren ( , -) enthalten. Daher kann eine zusätzliche Validierung erforderlich sein, um die Integrität der Konvertierung sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann man Strings in T-SQL sicher in Ganzzahlen mit Standardwerten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!