Heim > Datenbank > MySQL-Tutorial > Wie kann man NVARCHAR-Zeichenfolgen in T-SQL sicher in Ganzzahlen umwandeln und Konvertierungsfehler behandeln?

Wie kann man NVARCHAR-Zeichenfolgen in T-SQL sicher in Ganzzahlen umwandeln und Konvertierungsfehler behandeln?

Linda Hamilton
Freigeben: 2024-12-31 02:05:09
Original
422 Leute haben es durchsucht

How to Safely Cast NVARCHAR Strings to Integers in T-SQL and Handle Conversion Errors?

Umwandeln von Zeichenfolgen in Ganzzahlen und Behandeln von Konvertierungsfehlern

In T-SQL können wir auf Szenarien stoßen, in denen wir einen Nvarchar-Datentyp konvertieren müssen in eine Ganzzahl konvertieren, aber Fälle behandeln, in denen die Konvertierung fehlschlägt. Eine Methode, dies zu erreichen, ist die Kombination der CAST-Funktion und der ISNUMERIC()-Funktion.

Konvertierung mit einem Standardwert

Um einen Nvarchar-String in einen umzuwandeln Wenn die Konvertierung fehlschlägt, wenn die Konvertierung fehlschlägt, können wir die CASE-Anweisung wie folgt verwenden:

SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE <default value> END
Nach dem Login kopieren

Hierbei Ausdruck:

  • @text ist die zu konvertierende Nvarchar-Variable.
  • ISNUMERIC(@text) = 1 prüft, ob die Zeichenfolge in eine Ganzzahl konvertiert werden kann.
  • Wenn die Konvertierung erfolgreich ist, wandelt die CAST-Funktion @text in eine Ganzzahl um.
  • Wenn die Konvertierung fehlschlägt, wird der angegebene Standardwert zurückgegeben stattdessen.

Beispiel

Betrachten Sie das folgende 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
Nach dem Login kopieren

Im ersten Fall ist die Konvertierung erfolgreich und 100 wird zurückgegeben. Im zweiten Fall kann die Zeichenfolge „XXX“ nicht konvertiert werden und NULL wird als Standardwert zurückgegeben.

Einschränkungen bei der Handhabung von ISNUMERIC()

Das ist erwähnenswert ISNUMERIC() gibt möglicherweise für einige Zeichenfolgen „true“ zurück, die keine gültigen Ganzzahlen sind, beispielsweise solche, die Währungssymbole, Dezimalpunkte oder /-Zeichen enthalten. Daher ist es ratsam, die Saite vor dem Gießen gründlicher zu validieren.

Das obige ist der detaillierte Inhalt vonWie kann man NVARCHAR-Zeichenfolgen in T-SQL sicher in Ganzzahlen umwandeln und Konvertierungsfehler behandeln?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage