Vollständiger Leitfaden zur Datentypkonvertierung mit der SQL CAST-Funktion

Beim Arbeiten mit Daten in SQL müssen Sie möglicherweise Werte zwischen verschiedenen Datentypen konvertieren. Die SQL CAST-Funktion ist ein praktisches Werkzeug, um diese Datentypkonvertierungen einfach und klar durchzuführen. Dieser Artikel bietet eine detaillierte Erklärung zur Verwendung der CAST-Funktion, einschließlich grundlegender Anwendung, spezifischer Konvertierungsbeispiele, fortgeschrittener Beispiele und Methoden zur Fehlerbehandlung. Erweitern Sie Ihr Wissen über die SQL-Datentypkonvertierung und zielen Sie darauf ab, fortgeschrittenere Abfragen zu erstellen.

Inhaltsverzeichnis

Grundlegende Syntax der CAST-Funktion

Die CAST-Funktion ist eine Standard-SQL-Funktion zur Konvertierung von Datentypen. Die grundlegende Syntax lautet wie folgt:

CAST(expression AS target_data_type)

Hier ist expression der zu konvertierende Wert oder die zu konvertierende Spalte und target_data_type der Zieldatentyp. Um beispielsweise einen String in einen Integer zu konvertieren, können Sie die folgende Abfrage verwenden:

SELECT CAST('123' AS INT);

Diese Abfrage konvertiert den String '123' in einen Integer und gibt den numerischen Wert 123 zurück.

Beispiele für die Datentypkonvertierung

Hier sind einige typische Beispiele für Datentypkonvertierungen mit der CAST-Funktion.

Konvertierung von String zu Integer

Beispiel für die Konvertierung von String-Daten in den Integer-Datentyp.

SELECT CAST('456' AS INT) AS ConvertedValue;

Diese Abfrage konvertiert den String '456' in den Integer 456.

Konvertierung von Integer zu String

Beispiel für die Konvertierung von Integer-Daten in den String-Datentyp.

SELECT CAST(789 AS VARCHAR(10)) AS ConvertedValue;

Diese Abfrage konvertiert den Integer 789 in den String '789'.

Konvertierung von String zu Datum

Beispiel für die Konvertierung von String-Daten in den Datums-Datentyp.

SELECT CAST('2024-05-24' AS DATE) AS ConvertedValue;

Diese Abfrage konvertiert den String '2024-05-24' in das Datum 2024-05-24.

Konvertierung von Gleitkommazahl zu Integer

Beispiel für die Konvertierung von Gleitkomma-Daten in den Integer-Datentyp.

SELECT CAST(123.456 AS INT) AS ConvertedValue;

Diese Abfrage konvertiert die Gleitkommazahl 123.456 in den Integer 123.

Unterschiede zwischen CAST- und CONVERT-Funktionen

SQL verfügt auch über die CONVERT-Funktion, die der CAST-Funktion ähnelt, aber es gibt einige Unterschiede zwischen den beiden.

Grundlegende Unterschiede

Die CAST-Funktion entspricht dem ANSI-SQL-Standard und wird von den meisten Datenbanken unterstützt. Im Gegensatz dazu ist die CONVERT-Funktion eine Erweiterung, die hauptsächlich in Microsoft SQL Server verwendet wird und spezifische Formatierungsoptionen bietet.

Syntaxunterschiede

Syntax der CAST-Funktion:

CAST(expression AS target_data_type)

Syntax der CONVERT-Funktion:

CONVERT(target_data_type, expression [, style])

Die CONVERT-Funktion hat eine style-Option, mit der Sie Daten oder Strings in bestimmten Formaten konvertieren können.

Verwendungsbeispiele

Beispiel der CAST-Funktion:

SELECT CAST('123' AS INT) AS ConvertedValue;

Beispiel der CONVERT-Funktion:

SELECT CONVERT(INT, '123') AS ConvertedValue;

Beispiel der CONVERT-Funktion unter Verwendung der Formatoption:

SELECT CONVERT(VARCHAR, GETDATE(), 101) AS USFormattedDate;

Diese Abfrage konvertiert das aktuelle Datum in einen String im Format MM/DD/YYYY.

Erweiterte Beispiele mit der CAST-Funktion

Die CAST-Funktion kann in verschiedenen fortgeschrittenen Szenarien über die grundlegende Datentypkonvertierung hinaus verwendet werden. Hier sind einige praktische Beispiele.

Konkatenation von Zahlen als Strings

Beispiel für die Konvertierung einer Zahl in einen String und deren Verkettung mit einem anderen String.

SELECT 'Order Number: ' + CAST(OrderID AS VARCHAR) AS OrderDescription
FROM Orders;

Diese Abfrage konvertiert die OrderID in einen String und verkettet sie mit dem String Order Number:.

Erzwingen der Datentypkonsistenz

Beispiel zur Sicherstellung der Datentypkonsistenz bei der gemeinsamen Verwendung von Spalten unterschiedlicher Datentypen.

SELECT CAST(SalesAmount AS DECIMAL(10, 2)) AS FormattedSalesAmount
FROM Sales;

Diese Abfrage konvertiert die Spalte SalesAmount in einen DECIMAL-Typ mit 2 Dezimalstellen.

Vergleich von Daten und Strings

Beispiel für die Konvertierung eines Datums in einen String-Typ zum Vergleich.

SELECT *
FROM Events
WHERE CAST(EventDate AS VARCHAR) = '2024-05-24';

Diese Abfrage konvertiert die Spalte EventDate in einen String und sucht nach Zeilen, die mit dem angegebenen Datumsstring übereinstimmen.

Bedingte Datentypkonvertierung

Beispiel für die Verwendung der CASE-Anweisung zur bedingten Datentypkonvertierung.

SELECT 
    CASE 
        WHEN IsNumeric(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS ConvertedValue
FROM SampleTable;

Diese Abfrage konvertiert die Spalte Value nur dann in einen Integer, wenn der Wert numerisch ist.

Fehlerbehandlung mit der CAST-Funktion

Bei der Datentypkonvertierung können Fehler auftreten. Hier sind einige Methoden zur Fehlerbehandlung bei der Verwendung der CAST-Funktion zu berücksichtigen.

Verwendung der TRY_CAST-Funktion

In SQL Server können Sie die TRY_CAST-Funktion verwenden, um Konvertierungsfehler zu vermeiden. TRY_CAST gibt NULL zurück, wenn die Konvertierung fehlschlägt.

SELECT TRY_CAST('abc' AS INT) AS SafeConversion;

Diese Abfrage gibt NULL zurück, da die Konvertierung des Strings 'abc' in einen Integer fehlschlägt.

Fehlerbehandlung mit CASE-Anweisungen

Beispiel zur Kombination der CASE-Anweisung mit der Fehlerbehandlung auf Basis von Bedingungen.

SELECT 
    CASE 
        WHEN ISNUMERIC(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS SafeConversion
FROM SampleTable;

Diese Abfrage gibt NULL zurück, wenn der Value nicht numerisch ist.

Verwendung der TRY_PARSE-Funktion

TRY_PARSE ist nützlich zur Konvertierung von Strings in Daten oder Zahlen. TRY_PARSE gibt ebenfalls NULL zurück, wenn die Konvertierung fehlschlägt.

SELECT TRY_PARSE('2024-05-24' AS DATE USING 'en-US') AS SafeDateConversion;

Diese Abfrage konvertiert den String '2024-05-24' in einen Datentyp und gibt NULL zurück, wenn die Konvertierung fehlschlägt.

Beispielabfrage zur Fehlerbehandlung

Hier ist ein Beispiel für die Fehlerbehandlung mit TRY_CAST.

SELECT 
    Name, 
    TRY_CAST(Age AS INT) AS SafeAge 
FROM Users;

Diese Abfrage verhindert Fehler, indem NULL zurückgegeben wird, wenn die Werte in der Spalte Age nicht in Integer konvertiert werden können.

Fazit

Die CAST-Funktion ist ein leistungsstarkes und flexibles Werkzeug zur Datentypkonvertierung in SQL. Das Verständnis der grundlegenden Syntax und das Ausprobieren verschiedener Datentypkonvertierungsbeispiele wird Ihnen helfen, Fähigkeiten zur Erstellung komplexerer Abfragen zu entwickeln. Zudem ist es wichtig, die Unterschiede und die Verwendung anderer Konvertierungsfunktionen wie CONVERT und TRY_CAST zu kennen. Eine ordnungsgemäße Fehlerbehandlung gewährleistet die Erstellung zuverlässiger SQL-Abfragen. Beherrschen Sie die Verwendung der CAST-Funktion, um Datenbankoperationen effizienter durchzuführen.

Inhaltsverzeichnis