📖💡 Funktionen
Vordefinierte SQL-Funktionen
SQL Server stellt eine riesige Menge vordefinierter (integrierter) Funktionen zur Verfügung. Eine integrierte SQL Server-Funktion ist entweder deterministisch oder nicht deterministisch.
Funktionen sind deterministisch, wenn sie bei jedem Aufrufen mit bestimmten Eingabewerten immer das gleiche Ergebnis zurückgeben.
Funktionen sind nicht deterministisch, wenn sie bei jedem Aufrufen selbst mit denselben bestimmten Eingabewerten verschiedene Ergebnisse zurückliefern können.
WICHTIG: Vordefinierte Funktionen wirken sich bei deren Ausführung nur auf die Anzeige aus, nicht jedoch auf die in der Datenbank gespeicherten Daten. Diese werden in keiner Weise verändert!
Bei den hier behandelten Funktionen handelt es sich um sogenannte Single-Row-Funktionen (Skalar-Funktionen). Diese liefern aus einem Ausdruck einer Zeile einen Wert zurück. Im Gegensatz dazu fassen Multiple-Row-Funktionen (auch als Aggregatfunktionen bekannt) mehrere Werte aus unterschiedlichen Datensätzen zu einem Wert zusammen. Single-Row- bzw. Skalar-Funktionen werden für jede Zeile einmal separat ausgeführt und können sowohl in der SELECT
- als auch in der WHERE
-Klausel verwendet werden. Single- Row-Funktionen können keine, eine oder mehrere Übergabeparameter (auch Argumente genannt) besitzen. Auch hier gibt es Syntax-Unterschiede bei den Herstellern. Der gesamte Funktionsumfang ist jedoch sehr ähnlich. Funktionen lassen sich in verschiedene Typen einteilen. Oft verwendete Typen sind:
Zeichenfolgenfunktionen
Mathematische Funktionen
Datums- und Uhrzeitfunktionen
Konvertierungsfunktionen
Systemfunktionen
Zeichenfolgenfunktionen
Zeichenfolgenfunktionen führen Operationen für den Eingabewert einer Zeichenfolge (vom Typ char oder varchar) aus und geben eine Zeichenfolge oder einen numerischen Wert zurück. Werden Argumente übergeben, die keine Zeichenfolgewerte sind, wird der Eingabetyp implizit in einen Textdatentyp konvertiert.
SQL Server
ORACLE
CHAR()
LOWER(), UPPER()
LEFT(), RIGHT()
CONCAT()
LEN()
SUBSTR()
LOWER(), UPPER()
LENGTH()
LTRIM(), RTRIM()
INSTR()
REPLICATE()
TRIM()
STR()
SUBSTRING()
CHARINDEX()
Mathematische Funktionen
Mathematische Funktionen führen Berechnungen basierend auf Eingabewerten aus, die als Parameter für die Funktionen bereitgestellt werden und geben einen numerischen Wert zurück.
SQL Server
ORACLE
ROUND()
ROUND()
FLOOR()
FLOOR()
ABS()
ABS()
RAND()
EXP()
EXP()
PI()
POWER()
POWER()
SIN()
SIN()
COS()
SQUARE()
SQRT()
SQRT()
TAN()
LOG()
LOG()
MOD()
TRUNC()
IGN()
LN()
Datums- und Uhrzeitfunktionen
Datums- und Uhrzeitfunktionen führen Operationen für Datums- und Zeiteingabewerte aus und geben eine Zeichenfolge, eine Zahlen-, Datums- oder Zeitwert zurück.
SQL Server
ORACLE
DATEADD()
SYSDATE
DATEDIFF()
MONTHS_BETWEEN
DATENAME()
TO_CHAR
DAY(), MONTH(), YEAR()
TO_NUMBER
GETDATE()
ADD_MONTHS
GETUTCDATE()
LAST_DAY
SYSDATETIME()
ROUND
TRUNC
Konvertierungsfunktionen
Mittels einer Konvertierungs-Funktion kann beispielsweise ein Datumsformat explizit umgewandelt werden. Die Formatangabe wird von jeder Sprachversion und Spracheinstellung gleich interpretiert. Während die Konvertierungs-Funktion für Datumswerte bei SQL Server standardmässig CONVERT
darstellt, verwendet ORACLE die Funktion TO_DATE
.
SQL Server
ORACLE
Funktion
CONVERT
TO_DATE
Format
Deutsch: tt.mm.jj -> 4
USA: mm/dd/jj -> 1
Für die vierstellige Jahresangabe 100 addieren (deutsch -> 104)
Format ist frei definierbar
Beispiel
CONVERT(date, '24.12.2004', 4)
CAST('20051224', AS date)
TO_DATE('24.12.2005', 'DD.MM.YY')
Bei SQL Server existiert alternativ die Funktion CAST
. Diese wird vor allem für die Konvertierung zwischen dezimalen und numerischen Werten verwendet und wird in der Regel der SQL Server-spezifischen Funktion CONVERT
vorgezogen. CONVERT
kommt bei Microsoft dagegen immer im Zusammenhang mit komplexeren Datums- und Uhrzeitkonvertierungen zum Einsatz. Bei ORACLE existieren neben TO_DATE()
noch die Funktionen TO_CHAR()
und TO_NUMBER()
.
Systemfunktionen
Systemfunktionen führen Operationen für den Eingabewert einer Zeichenfolge (vom Typ char
oder varchar
) aus und geben eine Zeichenfolge oder einen numerischen Wert zurück.
SQL Server
ORACLE
CURRENT_USER
HOST_NAME(), HOST_ID()
ISNULL()
NVL()
ISNUMERIC()
NEWID()
Zulässige Datentypkonvertierungen bei SQL Server
Implizite Konvertierungen sind Konvertierungen, die ohne Angabe der CAST- oder CONVERT- Funktion durchgeführt werden. Explizite Konvertierungen sind Konvertierungen, die die Angabe der CAST- oder CONVERT-Funktion erfordern. In der folgenden Abbildung werden alle expliziten und impliziten Datentypkonvertierungen aufgeführt, die für die vom SQL Server-System bereitgestellten Datentypen zulässig sind.
💡 Gruppenarbeit
Jede Gruppe bereitet einen kleinen Vortrag zu einem Funktionstyp vor und erarbeitet 4 Anwendungsbeispiele.
Anschliessend präsentiert jede Gruppe ihren Funktionstyp.
Last updated
Was this helpful?