πŸ“–πŸ’‘ 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.

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.

Quelle: https://docs.microsoft.com/de-de/sql/t-sql/functions/cast-and-convert-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15

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