ππ‘ 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?