Im dritten Teil werden die neuen Funktionen zum Konvertieren von Daten vorgestellt: TRY_CONVERT, PARSE und TRY_PARSE.
Dies sind zwar nur kleine Ergänzungen, aber sie machen das Leben einfacher.
TRY_CONVERT
Die neue Funktion TRY_CONVERT ist im Grunde nur eine Erweiterung der CONVERT Funktion. Im Gegensatz zu CONVERT wird aber kein Fehler geworfen wenn der Wert nicht konvertiert werden kann. Stattdessen liefert die Funktion NULL als Ergebnis.
Hier ein kleines Beispiel:
-- Läuft ohne Fehler
SELECT TRY_CONVERT(INT, 'ABC') AS ValueInt;
-- Bricht mit Fehler ab
SELECT CONVERT(INT, 'ABC') AS ValueInt;
TRY_CONVERT bietet sich in Szenarien mit generischen Daten an. Wenn z.B. eine Tabelle Daten verschiedener Typen enthält und die Werte in einer Textspalte speichert. Damit sind Abfragen wie diese möglich:
SELECT Wert
FROM GenerischeTabelle
WHERE DatenTyp = 'INT' AND TRY_CONVERT(INT, Wert) > 100
PARSE
Mit dieser Funktion kann ein String in einen anderen Datentyp konvertiert werden. Der Unterschied zu CAST und CONVERT ist ein optionaler USING Parameter der die zu verwendende Culture angibt. Erlaubt ist hier jede von .Net unterstützte Culture. Wird keine Culture angegeben wird die der aktuellen Session verwendet. Da die Funktion auf .Net CLR basiert ist die Performance ein wenig reduziert.
Hier ein Beispiel:
SELECT PARSE('02/29/2012' AS datetime USING 'en-US') AS [Parse mit US Culture]
SELECT PARSE('29/02/2012' AS datetime USING 'de-DE') AS [PARSE mit DE Culture]
Das Ergebnis beider Abfragen ist identisch: 2012-02-29 00:00:00.000
TRY_PARSE
TRY_PARSE ist das Gegenstück zu TRY_CONVERT. Der einzige Unterschied zur PARSE Funktion ist wieder, das bei einem Fehler NULL als Ergebnis zurückgegeben wird.
Im letzten Teil der Serie werden dann die neuen Logikfunktionen des SQL Servers 2012 vorgestellt.
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen