SQL konvertieren Varchar in numerisch

SQL konvertieren Varchar in numerisch

Die Konvertierung ist eine weit verbreitete Aufgabe für Programmierer und Datenbankingenieure. In diesem Artikel wird untersucht, wie ein VARCHAR -Typ in einen numerischen Typ in Standard -SQL konvertiert.

Es muss berücksichtigt werden, dass wir, wenn wir Standard -SQL sagen, Techniken und Methoden, die von relationalen Datenbankmotoren allgemein angewendet werden.

SQL Cast -Methode

In der Standard -SQL wird die Type eingesetzt, indem die Funktion cast () verwendet wird. Die Funktionssyntax ist wie gezeigt:

Cast (Ausdruck als t_type [(Länge)]);

Die Funktion dauert drei Hauptparameter:

  1. Der Ausdruck bezieht sich auf jeden Wert, der in einen bestimmten Typ konvertiert werden kann.
  2. T Typ bezieht sich auf den Datentyp, für den der angegebene Wert konvertiert werden sollte: Der Zieltyp kann jeden unterstützten Standard -SQL -Typ wie INT64, numerisch, bignumerisch, Datum, String, Bytes, DateTime, Zeit, Struktur, Array, Zeitstempel, Zeitstempel, enthalten. usw.
  3. Länge - Der dritte Parameter ist die Länge. Dies ist ein optionaler Parameter, der die Länge des Zieltyps angibt.

SQL konvertieren Varchar in int int

Betrachten Sie das folgende Beispiel, das den Varchar -Typ in einen INT64 -Typ umwandelt.

Wählen Sie Cast ('344' als int64);

Die Beispielabfrage sollte den Wert wie gezeigt auf int konvertiert zurückgeben:

int4
------
344

SQL konvertieren Varchar in numerisch

Um einen VARCHAR -Typ in einen numerischen Typ umzuwandeln, ändern Sie den Zieltyp als numerisch oder bignumerisch, wie im folgenden Beispiel gezeigt:

Wählen Sie Cast ('344' als numerisch) als numerisch;
Wählen Sie Cast ('344' als bignumerisch) als big_numeric;

Die obigen Abfragen sollten den angegebenen Wert auf numerische und große numerische Wert zurückgeben.

Beachten Sie, dass Ihre Datenbank -Engine Ihren Zieltyp unterstützt. Andernfalls gibt es einen Fehler zurück.

SQL konvertieren Varchar in Schwimmer

Wenn Sie schwimmende Punkt-Varchar haben, können Sie ihn in einen Schwimmertyp konvertieren, wie im folgenden Beispiel gezeigt:

Wählen Sie Cast ('3.14159 'als float) als float;

Der Code sollte den Float -Typ des angegebenen VARCHAR zurückgeben. Die Beispielausgabe ist wie unten gezeigt:

SCHWEBEN
---------
3.14159
(1 Reihe)

SQL Safe Casting

Haben Sie sich gefragt, was passiert, wenn Sie versuchen, eine nicht numerische Zeichenfolge in einen numerischen Typ umzuwandeln? Betrachten Sie das folgende Beispiel:

Wählen Sie Cast ('Hallo' als int64) als var;

Wenn Sie versuchen, die obige Abfrage auszuführen, fällt dies fehl, da der angegebene VARCHAR -Typ nicht in Int konvertiert werden kann.

Um zu verhindern, dass die Abfrage fehlschlägt, wenn die Konvertierung nicht unterstützt wird, können wir die Safe_cast -Methode verwenden.

Die Funktion verhält sich ähnlich wie die Gussfunktion, außer dass sie nicht fehlschlägt, wenn die Konvertierung fehlschlägt. Stattdessen gibt es NULL zurück, wie im folgenden Beispiel gezeigt:

Wählen Sie Safe_cast ('Hallo' als int64) als Nan;

Anstelle eines Fehlers sollte die obige Abfrage zurückkehren:

"Nan": null

NOTIZ: Die Safe_cast -Methode wird in Standard -SQL unterstützt. Einige Datenbankmotoren können die Prozeduren unterschiedlich implementieren. In SQL Server wird beispielsweise die Funktion safe_cast () in try_cast oder try_convert umbenannt.

Abschluss

In diesem Tutorial haben wir darüber diskutiert, wie man in Standard-SQL Typen durchführt. Zum Beispiel haben wir über die Konvertierung von Varchar in INT64, numerisch, bignumerisch und float64 diskutiert. Wir haben auch behandelt, wie man ein sicheres Casting für Szenarien durchführt, in denen das Typkasten zu einem Fehler führen kann.