Funktionen für Ausdrücke

Aktualisiert: November 2007

Funktionen sind gespeicherte Vorgänge, die Sie verwenden können. Grundlegende Funktionen werden von Datenbankmangementsystemen bereitgestellt. Sie haben jedoch auch die Möglichkeit, benutzerdefinierte Funktionen zu erstellen.

Sie können beim Erstellen eines Ausdrucks mehrere Funktionen aufrufen, beispielsweise:

  • Zeichenfolgenfunktionen (Zeichenfunktionen)

  • Datumsfunktionen

  • Mathematische Funktionen

  • Systemfunktionen

  • Weitere Funktionen, z. B. zum Konvertieren von Datentypen

  • Benutzerdefinierte Funktionen

Im Allgemeinen können Sie, wenn Sie die in der Datenbank verfügbaren Funktionen kennen, die Funktionsnamen und die Syntax verwenden. In einigen Fällen, z. B. beim Erstellen von Ansichten, gespeicherten Prozeduren oder Triggern, müssen Sie datenbankspezifische Funktionsnamen und Syntax verwenden.

Der Abfrage- und Ansicht-Designer vereinfacht die Arbeit mit Funktionen durch folgende Vorgänge:

  • Richtiges Einfügen von Anführungszeichen in Funktionsargumente

  • Überprüfen der Datentypen von Argumenten

  • Überprüfen der Datentypen von Rückgabewerten

Ausführliche Informationen zu den von der Datenbank unterstützten Funktionen finden Sie in der entsprechenden Datenbankdokumentation.

Hinweis:

Sie können mithilfe eines speziellen Funktionssatzes, den Aggregatfunktionen wie SUM( ) und AVG( ), Abfragen erstellen, in denen Daten zusammengefasst werden. Ausführliche Informationen finden Sie unter Zusammenfassen von Abfrageergebnissen.

Zeichenfolgenfunktionen

Die folgenden Funktionen zum Bearbeiten von Zeichenfolgen dienen als Beispiel für die in vielen Datenbanken verfügbaren Zeichenfolgen.

Funktion

Beschreibung

Beispiel

LCASE( )*,  LOWER( )

Konvertiert Zeichenfolgen in Kleinschreibung.

Verwendung von Großbuchstaben für das erste Zeichen:

  • SELECT UPPER(substring(lname, 1, 1))

Konvertierung der übrigen Zeichen in Kleinbuchstaben:

  • LOWER(substring (lname, 2, 99))

FROM employee

Zeigt einen Nachnamen an, nachdem das erste Zeichen in Großschreibung und die restlichen Zeichen in Kleinschreibung konvertiert wurden.

LTRIM( )

Entfernt führende Leerzeichen aus einer Zeichenfolge.

SELECT stor_name, LTRIM(stor_address)
FROM stores

Zeigt eine Adressspalte an, nachdem die überflüssigen führenden Leerzeichen entfernt wurden.

SUBSTRING( )

Extrahiert ein oder mehrere Zeichen aus einer Zeichenfolge.

SELECT SUBSTRING(phone,1,3)
FROM employee

Zeigt die ersten drei Zeichen (die Ortskennzahl) einer Telefonnummer an.

UCASE( )*,  UPPER( )

Konvertiert Zeichenfolgen in Großbuchstaben.

SELECT * FROM employee
WHERE UPPER(lname) = 'SMITH'

Konvertiert den Inhalt der Spalte lname in Großbuchstaben, bevor dieser mit einem bestimmten Wert verglichen wird. Dies verhindert falsche Übereinstimmungen bei Suchvorgängen, in denen die Groß-/Kleinschreibung berücksichtigt wird.

*   Verwenden Sie beim Aufruf als ODBC-Funktion die folgende Syntax: { fn LCASE(text) }.

Datumsfunktionen

Die folgenden Funktionen (oder damit vergleichbare Funktionen) sind in vielen Datenbanken verfügbar.

Funktion

Beschreibung

Beispiel

DATEDIFF( )

Berechnet das Intervall zwischen zwei Datumsangaben.

SELECT fname, lname, hire_date
FROM employee
WHERE DATEDIFF(year, hire_date, getdate()) > 5

Sucht nach Mitarbeitern, die vor mehr als fünf Jahren eingestellt wurden.

DATEPART( )

Gibt den angegebenen Teil der Date-Spalte oder Datetime-Spalte zurück, einschließlich des Tages, Monats oder Jahres.

SELECT DATEPART(year, hire_date)
FROM employee

Zeigt nur das Jahr an, in dem ein Mitarbeiter eingestellt wurde (nicht das vollständige Datum).

CURDATE( )*,  GETDATE( ) oder DATE( )

Gibt das aktuelle Datum im Datetime-Format zurück. Diese Funktion empfiehlt sich für die Eingabe anderer Date-Funktionen, z. B. das Berechnen eines Intervalls ab dem heutigen Tag.

SELECT order_id
FROM orders
WHERE order_date = GETDATE()
Displays orders placed today.

Mathematische Funktionen

Die meisten Datenbanken stellen mathematische Funktionen für Berechnungen bereit. Die folgenden Funktionen dienen als Beispiel für die in vielen Datenbanken verfügbaren Funktionen.

Hinweis:

Sie können mit den Aggregatfunktionen AVG( ), COUNT( ), MAX( ), MIN( ) und SUM( ) Durchschnittswerte und Zusammenfassungen in Berichten erstellen.

Funktion

Beschreibung

Beispiel

ROUND( )

Rundet eine Zahl auf die angegebene Anzahl Dezimalstellen ab.

SELECT ROUND(qty * (price * discount), 2)
FROM sales

Zeigt einen Gesamtpreis auf Grundlage eines Rabatts an und rundet die Ergebnisse dann auf zwei Dezimalstellen ab.

FLOOR( )

Rundet eine Zahl auf die nächste (kleinste) ganze Zahl ab.

UPDATE titles
SET price = FLOOR(price)

Rundet alle Preise in der Spalte titles auf die nächste ganze Zahl ab.

CEILING( )

Rundet eine Zahl auf die nächste ganze Zahl auf.

INSERT INTO archivetitle
SELECT title, CEILING(price)
FROM titles

Kopiert title und price (gerundet auf die nächste ganze Zahl) aus der Tabelle titles in die Tabelle archivetitle.

Systemfunktionen

Die meisten Datenbanken stellen bestimmte Funktionen bereit, mit denen Sie Informationen über die aktuelle Datenbank, den aktuellen Benutzer oder den Server zurückgeben können. Die folgenden Funktionen dienen als Beispiel für die in vielen Datenbanken verfügbaren Funktionen.

Funktion

Beschreibung

Beispiel

DATALENGTH( )

Gibt die Anzahl der vom angegebenen Ausdruck verwendeten Bytes zurück.

SELECT DATALENGTH(au_lname)
FROM authors

Führt die Anzahl der Bytes auf, die für den Nach- und Vornamen erforderlich sind.

USER( )*,  USER_NAME( )

Gibt den Namen des aktuellen Benutzers zurück.

SELECT company_name, city, phone
FROM customers
WHERE salesperson = USER_NAME()

Erstellt eine Liste der Kunden für einen Verkäufer, der die Abfrage ausführt.

Andere Funktionen

Neben den bereits aufgeführten Funktionen stellen die meisten Datenbanken weitere Funktionen bereit, mit denen Sie z. B. Abfragen für die Datentypkonvertierung erstellen können. Die folgenden Hilfsfunktionen stehen in vielen Datenbanken zur Verfügung.

Funktion

Beschreibung

Beispiel

CONVERT( )

Konvertiert den Datentyp. Empfiehlt sich zum Formatieren von Daten oder zum Verwenden des Inhalts einer Datenspalte als Argument in einer Funktion, die einen anderen Datentyp erfordert.

SELECT 'Hired: ' + CONVERT(char (11),
  hire_date)
FROM employee

Zeigt ein Datum mit einer vorangestellten Beschriftung an. Die CONVERT( )-Funktion erstellt eine Zeichenfolge aus dem Datum, damit dieses mit einer Literalzeichenfolge verkettet werden kann.

SOUNDEX( )

Gibt den Soundex-Code des angegebenen Ausdrucks zurück, um nach ähnlich klingenden Zeichenfolgen suchen zu können.

SELECT au_lname, au_fname
FROM authors
WHERE SOUNDEX(au_fname) = 'M240'

Sucht nach Namen, die wie "Michael" klingen.

STR( )

Konvertiert numerische Daten in eine Zeichenfolge, damit Sie diese mit Textoperatoren ändern können.

SELECT str(job_id)
FROM employee

Zeigt die Spalte job_id als einzelne Zeichenfolge an.

Siehe auch

Konzepte

Ausdrücke in Abfragen

Referenz

Struktur von Ausdrücken

Weitere Ressourcen

Erstellen von Abfragen mit Parametern