Structured Query Language (SQL)

Sie sind hier: StartseiteStructured Query LanguageFunktionen

CM, 01.09.2001

Funktionen: Funktionen (Aggregatfunktionen, Datums- und Zeitfunktionen, Arithmetische Funktionen, Zeichenfunktionen, Umwandlungsfunktionen, Verschiedene Funktionen).

Funktionen

Aggregatfunktionen

Aggregatfunktionen, auch Gruppenfunktionen genannt, ermitteln auf einer Spalte basierende Werte.

Diese Funktionen können auch miteinander kombiniert werden.

SELECT COUNT (<Spaltenname>),
AVG (
<Spaltenname>),
MIN (
<Spaltenname>),
MAX (
<Spaltenname>),
STDDEV (
<Spaltenname>),
VARIANCE (
<Spaltenname>),
SUM (
<Spaltenname>)
FROM
<Tabellenname>;

COUNT:

Liefert die Anzahl der Zeilen.

SELECT COUNT (*) FROM <Tabellenname>;

Diese Abfrage kann natürlich um etliches erweitert werden (z.B.: ...where...).

SUM:

Liefert die Summe der Werte einer Spalte zurück und ist deshalb nur für numerische Felder gültig. Zeichenfelder geben eine Fehlermeldung zurück.

AVG:

Bildet den Mittelwert einer Spalte. Ebenfalls nur gültig bei numerischen Feldern.

MAX / MIN:

Ermittlung des größten / kleinsten Wertes einer Spalte. Auch bei Zeichenfeldern einsetzbar (Z als höchstwertigster String).

VARIANCE:

Varianz/Streuung (Quadrat der Standardabweichung) einer Zufallsgröße. Bei statistischen Berechnungen in Gebrauch.

STDDEV:

Standardabweichung einer Zahlenspalte.

Datums- und Zeitfunktionen

ADD_MONTHS:

Addition von Monatsanzahl auf ein angegebenes Datum.

Nur mit Datumswerten einsetzbar!

Ausgabe: Spalte x, Spalte y und Spalte ADD_MONTHS (Spalte y + 2 Monate)
SELECT <Spaltenname x>, <Spaltenname y>,
ADD_MONTHS(
<Spaltenname y>, 2)
FROM
<Tabellenname>;

LAST_DAY:

Rückgabe des letzten Tages eines Monates.

SELECT <Spalte Datum>,
LAST_DAY(
<Spalte Datum>)
FROM
<Tabellenname>;

MONTHS_BETWEEN:

Berechnet die Anzahl der Monate zwischen zwei Datumsangaben. Ausgabe auch in Kommazahlen.

Ausgabe: Anfangsdatum, Enddatum, Differenz.
SELECT <Spalte Anfangsdatum>, <Spalte Enddatum>,
MONTHS_BETWEEN(
<Spalte Enddatum>, <Spalte Anfangsdatum>) Differenz
FROM <Tabellenname>;

NEW_TIME:

Anpassen von Zeitangaben an eine bestimmte Zeitzone.

NEW_TIME(Datum, Zeitzone1, Zeitzone2)

NEXT_DAY:

Gibt das nächstliegende Datum zum angegebenen Wochentag aus.

NEXT_DAY(<Spalte Anfangsdatum>, '<Wochentag>')

SYSDATE:

Rückgabe von Datum und Uhrzeit aus den Systemeinstellungen.

SELECT DISTINCT SYSDATE
FROM
<Tabellenname>;

Arithmetische Funktionen

ABS:

Absolutwert. Umwandlung von negativen Zahlen in positive.

SELECT ABS(<Spaltenname>)
FROM
<Tabellenname>;

CEIL und FLOOR:

CEIL gibt die kleinste ganze Zahl zurück, die größer oder gleich dem übergebenen Argument ist, FLOOR die größte ganze Zahl, die kleiner oder gleich dem Argument ist.

SELECT CEIL(<Spaltenname>)
FROM
<Tabellenname>;

Trigonometrische Funktionen (COS, SIN, TAN) und Hyperbelfunktionen (COSH, SINH, TANH):

Das Argument ist im Bogenmaß anzugeben.

EXP:

Exponentialfunktion (Basis e potenziert mit der als Argument angegebenen Zahl).

LN und LOG:

Natürlicher Logarithmus (LN). Fordert positive Zahlen, daher empfiehl sich manchmal Verknüpfung mit ABS-Funktion.

SELECT LN(ABS(<Spaltenname>))
FROM
<Tabellenname>;

Die LOG-Funktion dagegen braucht zwei Argumente und berechnet den Logarithmus für die Zahl des ersten Argumentes zur Basis im zweiten Argument. Im folgenden Beispiel ist die Basis 10.

SELECT LOG(<Spaltenname>,10)
FROM
<Tabellenname>;

MOD:

Restzahlermittlung der Division von Argument 1 (hier x) durch Argument 2 (hier y). Ausgabe mit Kommastellen.

SELECT MOD(<Spaltenname x>,<Spaltenname y>)
FROM
<Tabellenname>;

POWER:

Zahl m zur Potenz n. Auch negative Zahlen lassen sich potenzieren, dann muss n aber eine ganze Zahl sein!

SIGN:

Vorzeichenermittlung. Zahlen kleiner Null ergeben den Wert - 1, Zahlen größer Null ergeben 1 und bei einem Argument gleich Null ist das Ergebnis ebenfalls 0.

SELECT SIGN(<Spaltenname>)
FROM
<Tabellenname>;

SQRT:

Quadratwurzelberechnung. Nur positive Argumente! Zum Umgehen von negativen Argumenten Einsatz der ABS-Funktion.

SELECT SQRT(ABS(<Spaltenname>))
FROM
<Tabellenname>;

Zeichenfunktionen

CHR:

Liefert das zum numerischen Code äquivalente Zeichen. Ist somit vom Zeichensatz abhängig.

SELECT CHR(<Spaltenname>)
FROM
<Tabellenname>;

Die Zahl 67 würde im ASCII-Zeichensatz als C zurückgegeben werden, die 32 als Leerzeichen.

CONCAT:

Stringverknüpfung wie ||.

select CONCAT (<Spaltenname1, Spaltenname2>) "Alias Neuer Name"
from
<Tabellenname>;

Erhält die imaginär erstellte Spalte einen Namen, der aus mehreren Wörtern (Beispiel: "Vor- und Zuname") besteht, so ist es zu empfehlen, diesen in Anführungszeichen zu notieren.

INITCAP:

Wandelt das erste Zeichen eines Wortes in einen Großbuchstaben und den Rest in Kleinbuchstaben um.

LOWER und UPPER:

LOWER wandelt alle Zeichen in Kleinbuchstaben um, UPPER alle in Großbuchstaben.

LPAD und RPAD:

Auffüllende Funktion. Erstes Argument übergibt betroffenen String, zweites Anzahl der aufzufüllenden Zeichen, drittes ist optional und übergibt Füllzeichen.

Beispiel: Füllt die Zeile links vom Wort bis auf 20 Zeichen mit * auf.
SELECT LPAD(<Spaltenname>,20,'*')
FROM
<Tabellenname>;

Die Funktion RPAD füllt auf rechter Seite auf.

LTRIM und RTRIM:

Schneidet optional angegebenes Zeichen links bzw. rechts ab.

Beispiel: Schneidet alle * links vom Wort ab. Optionales Zeichen frei wählbar, sonst Leerzeichen.
SELECT LTRIM(<Spaltenname>,'*')
FROM
<Tabellenname>;

REPLACE:

Ersetzen. Erstes Argument ist der Spaltenname, zweites der Suchschlüssel, drittes (optional) der Ersetzungsstring. Ist das dritte Argument nicht mit angegeben, so werden die im zweiten Argument gesuchten Zeichen einfach gelöscht.

SELECT REPLACE(<Spaltenname>,'<zu suchender String>','<Ersetzungsstring>')
FROM
<Tabellenname>;

SUBSTR:

Extrahierung von Teilen eines Strings. Zielstring, Position des auszugebendenen Zeichens, Anzahl der zurückzugebenden Zeichen. Die Übergabe einer negativen Zahl im zweiten Argument hat zur Folge, dass sich der Anfangspunkt vom Ende des Strings berechnet.

Beispiel: Ausgabe von drei Zeichen, beginnend beim 5ten Zeichen des Strings.
SELECT SUBSTR(<Spaltenname>,'5','3')
FROM
<Tabellenname>;

Das dritte Argument ist wieder optional. Wird es weggelassen, so erfolgt die Ausgabe der Zeichen ab der im zweiten Argument angegebenen Position.

TRANSLATE:

Drei Argumente: Zielstring, von-String, nach-String. Notation nach vorangegangenem Beispiel. Groß-/Kleinschreibung innerhalb der Strings beachten, da sonst Umwandlug ignoriert wird!

INSTR:

Suche nach bestimmtem Zeichen und dessen Position im durchsuchten String. Zielstring, zu vergleichendes Muster, Suchstartposition (Standard 1), Art der Übereinstimmung (Standard 1).

LENGTH:

Länge eines String-Argumentes. Nur in Kombination mit RTRIM sinnvoll, da sonst Leerzeichen mitgezählt werden!

SELECT LENGTH(RTRIM(<Spaltenname>))
FROM
<Tabellenname>;

Umwandlungsfunktionen

Datentypkonvertierung.

TO_CHAR:

Umwandlung einer Zahl in ein Zeichen. Nicht sehr aufregend.

TO_NUMBER:

Umwandlung eines Strings in eine Zahl.

Verschiedene Funktionen

GREATEST und LEAST:

Ermittlung des größten bzw. kleinsten Elementes aus einer Folge von Ausdrücken.

SELECT GREATEST(<Ausdruck1>,'<Ausdruck2>','<Ausdruck3>','<Ausdruck4>')
FROM
<Tabellenname>;

USER:

Rückgabe des momentanen Datenbankbenutzernamens.