Zwei Funktionen zum expliziten Konvertieren eines Ausdrucks in einen anderen Ausdruck. Beide Funktionen
haben eine ähnliche Wirkung.
Syntax
Cast
Cast(<Ausdruck> As <Datentyp>[(<Länge des Datentyps>)])
Convert
Convert(<Datentyp> [(<Länge des Datentyps>)], <Ausdruck> [, <Stil>])
Argumente
<Ausdruck>
der zu konvertierende Ausdruck eines beliebigen Datentyps
<Datentyp> [(<Länge des Datentyps>)]
der Zieldatentyp, in welchen der Ausdruck
konvertiert werden soll. Falls es sich um einen Datentyp mit einer Längenangabe handelt, so wird
diese in Klammern notiert (varchar(50)).
<Stil>
In Abhängigkeit vom Datentyp erzeugt der Parameter bei der Konvertierung in eine Textdarstellung
verschiedene, vordefinierte Formate gemäß der folgenden drei Tabellen:
1. Float/Real
Wert
Beschreibung
0
Maximal sechs Ziffern, zunächst als Dezimalzahl, bei größeren/kleineren Werten wissenschaftlich
1
immer acht Ziffern, immer wissenschaftlich. Die Zeichenkette muß mindestens 15 Zeichen lang sein.
2
immer sechzehn Ziffern und wissenschaftlich. Die Zeichenkette muß minimal 23 Zeichen bereitstellen.
Convert(nvarchar(15), -3.5e0, 2) = -3.5000000e+000
Convert(nvarchar(23), 3.5e0, 2) = -3.500000000000000e+000
Wenn die Länge die Zeichenkette unter den angegebenen Minimalwerten 15/23 liegen, wird ein Laufzeitfehler erzeugt.
2. Money
Wert
Beschreibung
0
Keine Tausendertrennzeichen, zwei Nachkommastellen
1
Tausendertrennzeichen und zwei Nachkommastellen
2
keine Tausendertrennzeichen, vier Nachkommastellen
1. Bei der Konvertierung in Zeichenketten erstellen beide Funktionen minimale Zeichenfolgen ohne eingefügte Leerzeichen.
Dies ist ein Unterschied zur Str
-Funktion, welche führende Leerzeichen bis zur Gesamtlänge einfügt:Select 1 As [pos], 'a' + Cast(5 as nvarchar(10)) + 'b' As [Text],
Len('a' + Cast(5 as nvarchar(10)) + 'b') As [Länge]
Union
Select 2, 'a' + Str(5) + 'b', Len('a' + Str(5) + 'b')
Order By Pos
Ausgabe:
pos Text Länge
----------- ------------ -----------
1 a5b 3
2 a 5b 12
2. Erstellen einer abgeschnittenen Zeichenfolge: Sind in einem Feld bsp. 100 Zeichen zugelassen, sollen jedoch
maximal 50 Zeichen ausgegeben werden, so kann anstelle der Left
-Funktion Cast genutzt werden:Select Cast(A.KundenInfo as nvarchar(50)) From Kunden
3. Verwendung, um eine Zeichenfolge und eine Zahl bereits innerhalb einer Abfrage zu verketten. Hier ist eine Konvertierung
zwingend, da ansonsten versucht wird, die nicht numerische Spalte in eine numerische Spalte zu konvertieren.
Select V.V_Name + ' (' + Cast(V.V_Prov * 100 as nvarchar(5)) + '%)'
From Vertreter As V
erzeugt eine Ausgabe: Schulze, Fritz (7.00%)
Meier, Franz (5.00%)
Meyer, Emil (6.00%)
Hinweise
Im Rahmen komplexer gespeicherter Prozeduren, welche dynamischen Code erzeugen, sind diese Funktionen unverzichtbar.
Für Abfragen innerhalb von server-daten kann auf beide Funktionen verzichtet werden, falls
Datums- und numerische Daten ausschließlich durch sd-Elemente festgelegt werden. Die Convert-Funktion erlaubt die Ausgabe
einer dateTime-Spalte in einem vom Leser unabhängigen Format. Zu beachten ist allerdings, daß in diesem Fall Textdaten
ausgeliefert werden, so daß die Formatierungsmöglichkeiten mit den sd:datetime-format
- und
sd:number-format
-Attributen
nicht mehr zur Verfügung stehen.
Link zur hiesigen Seite als QR-Code
Kontaktformular:
Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!
Mit dem Klick auf den Button stimmen Sie zu, daß Cookies in Ihrem Browser gespeichert werden. Informationen zu den gespeicherten Cookies finden Sie unter Datenschutz#Cookies.Bei Fragen zur Technik wenden Sie sich bitte an Server-Daten - Web-Datenbank-Lösungen