Heim > Datenbank > MySQL-Tutorial > Wie kann ich NVARCHAR-Zeichenfolgen in T-SQL sicher in Ganzzahlen umwandeln und nicht numerische Werte verarbeiten?

Wie kann ich NVARCHAR-Zeichenfolgen in T-SQL sicher in Ganzzahlen umwandeln und nicht numerische Werte verarbeiten?

DDD
Freigeben: 2024-12-28 08:12:13
Original
598 Leute haben es durchsucht

How Can I Safely Cast NVARCHAR Strings to Integers in T-SQL, Handling Non-Numeric Values?

T-SQL-Konvertierung: Umwandlung von Zeichenfolgen in Ganzzahlen mit Standardwert oder NULL-Behandlung

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.

Lösung

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
Nach dem Login kopieren

So funktioniert es:

  • ISNUMERIC(): Diese Funktion wertet aus, ob der nvarchar-String @text a darstellt gültiger numerischer Wert. Wenn 1 (true) zurückgegeben wird, ist die Zeichenfolge numerisch.
  • CAST(): Wenn ISNUMERIC() true zurückgibt, wird die Zeichenfolge mithilfe von CAST() in eine Ganzzahl umgewandelt. Andernfalls wird das Ergebnis auf NULL gesetzt.

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.

Beispielcode

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
Nach dem Login kopieren

Einschränkungen

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:

  • Es wird zurückgegeben wahr für Zeichenfolgen, die Währungssymbole ($), Dezimaltrennzeichen (,), Tausendertrennzeichen (.) und arithmetische Zeichen ( und -) enthalten.
  • Es wird nicht zwischen Ganzzahlen und anderen numerischen Datentypen unterschieden, z als Dezimalzahlen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage