|
|
SQL in a Nutshell
Von Kevin Kline &anp; Daniel Kline
1. September 2001
ISBN 3-89721-197-1
264 Seiten
|
Kapitel 4
SQL-Funktionen
Eine Funktion ist eine besondere Art von Befehlswort in der Befehlsmenge von SQL99. Funktionen sind aus einem Wort bestehende Befehle, die genau einen Wert zurückgeben. Der Wert einer Funktion kann durch die Eingabeparameter bestimmt werden, wie das etwa bei einer Funktion der Fall ist, die den Durchschnitt einer Liste von Datenbankwerten berechnet. Aber viele Funktionen verwenden auch gar keine Eingabeparameter, wie etwa die Funktion CURRENT_TIME, die die aktuelle Systemzeit zurückgibt.
Der SQL99-Standard definiert eine Reihe nützlicher Funktionen. In diesem Kapitel werden diese Funktionen mit detaillierten Beschreibungen und Beispielen behandelt. Außerdem hat jeder Datenbankhersteller eine eigene Liste weiterer, interner Funktionen, die sich nicht im SQL-Standard wiederfinden. Sie finden hier für jede Datenbank-Implementierung eine Liste und Beschreibungen der internen Funktionen.
Außerdem erlauben die meisten Datenbankhersteller die Verwendung benutzerdefinierter Funktionen (user-defined functions, UDFs). Nähere Informationen zu UDFs finden Sie bei der Beschreibung des Befehls CREATE FUNCTION in Kapitel 3, Befehlsreferenz aller SQL-Anweisungen.
Deterministische und nicht-deterministische Funktionen
Funktionen können entweder deterministisch oder nicht-deterministisch sein. Eine deterministische Funktion gibt bei den gleichen Eingabewerten immer die gleichen Werte zurück. Eine nicht-deterministische Funktion gibt bei jedem Aufruf einen anderen Wert zurück, auch wenn die gleichen Eingabewerte verwendet werden.
Warum ist das wichtig? Das ist deshalb von Bedeutung, weil Funktionen in Views, benutzerdefinierten Funktionen und gespeicherten Prozeduren unterschiedlich verwendet werden können. Die Einschränkungen unterscheiden sich von Implementierung zu Implementierung, aber diese Objekte erlauben manchmal nur deterministische Funktionen in ihrem definierenden Code. Beispielsweise kann man mit Microsoft SQL Server einen Index auf einem Spaltenausdruck erzeugen - solange der Ausdruck keine nicht-deterministischen Funktionen enthält. Die Regeln und Einschränkungen unterscheiden sich von Hersteller zu Hersteller; lesen Sie also jeweils in der Dokumentation nach, wenn Sie die Funktionen verwenden wollen.
Funktionstypen
Es gibt verschiedene grundlegende Typen und Kategorien von Funktionen, sowohl in SQL99 als auch in den Hersteller-Implementierungen. Die grundlegenden Typen sind:
Aggregat-Funktionen
-
Arbeiten auf einer Sammlung von Werten, geben aber einen einzigen, zusammenfassenden Wert zurück.
Skalare Funktionen
-
Arbeiten auf einem einzelnen Wert und geben auf der Basis des Eingabewerts einen einzelnen Wert zurück. Manche skalare Funktionen, wie etwa CURRENT_TIME, benötigen überhaupt keine Argumente.
Aggregat-Funktionen
Aggregat-Funktionen geben auf der Basis anderer Werte einen einzelnen Wert zurück. Wenn Aggregat-Funktionen unter vielen anderen Ausdrücken in der Elementliste einer SELECT-Anweisung verwendet werden, dann muß diese Anweisung eine GROUP BY-Klausel haben. Dies ist nicht notwendig, wenn die Aggregat-Funktion der einzige von der SELECT-Anweisung erfragte Wert ist. Die unterstützten Aggregat-Funktionen und deren Syntax finden Sie in Tabelle 4-1.
| AVG(ausdruck)
|
Berechnet den Durchschnittswert einer Spalte, die durch den Ausdruck bestimmt wird
|
| COUNT(ausdruck)
|
Zählt die vom Ausdruck definierten Zeilen
|
| COUNT(*)
|
Zählt alle Zeilen in der angegebenen Tabelle oder dem View
|
| MIN(ausdruck)
|
Findet den kleinsten Wert in der durch den Ausdruck angegebenen Spalte
|
| MAX(ausdruck)
|
Findet den größten Wert in der durch den Ausdruck angegebenen Spalte
|
| SUM(ausdruck)
|
Berechnet die Summe der durch den Ausdruck angegebenen Spaltenwerte
|
Technisch gesehen, sind auch ANY, EVERY und SOME Aggregat-Funktionen. Sie werden hier aber als Bereichssuchkriterien besprochen, da sie meistens auch so verwendet werden. Näheres zu diesen Funktionen finden Sie unter SELECT ... WHERE im vorigen Kapitel.
Die Anzahl der Werte, die die Aggregate verarbeiten, hängt von der Anzahl der Spalten ab, die von der Tabelle abgefragt werden. Dieses Verhalten unterscheidet Aggregat-Funktionen von skalaren Funktionen, bei denen eine feste Anzahl von Parametern mit vorgegebenen Typen verwendet wird.
Die allgemeine Syntax der Aggregat-Funktionen lautet:
name_der_aggregat_funktion ( [ALL | DISTINCT] ausdruck )
Der Name der Aggregat-Funktion kann AVG, COUNT, MAX, MIN oder SUM sein. Die Klausel ALL, die auch das Default-Verhalten angibt und normalerweise nicht angegeben werden muß, wertet alle Spalten aus, wenn der Wert der Funktion aggregiert werden soll. Mit DISTINCT werden nur unterschiedliche Werte verwendet.
AVG und SUM
Die Funktion AVG berechnet den Durchschnitt der Werte in einer Spalte oder in einem Ausdruck. SUM berechnet die Summe. Beide Funktionen arbeiten mit numerischen Werten und ignorieren NULL-Werte. Sie können auch dazu verwendet werden, den Durchschnitt oder die Summe aller unterschiedlichen Werte einer Spalte oder eines Ausdrucks zu berechnen.
AVG und SUM werden von Microsoft SQL Server, MySQL, Oracle und PostgreSQL unterstützt.
Beispiel
Die folgende Abfrage berechnet durchschnittliche Verkaufszahlen für das laufende Jahr für jeden Buchtyp:
SELECT type, AVG( ytd_sales ) AS "average_ytd_sales"
FROM titles
GROUP BY type;
Diese Abfrage gibt die Summe der Verkaufszahlen für das laufende Jahr für jeden Buchtyp zurück:
SELECT type, SUM( ytd_sales )
FROM titles
GROUP BY type;
COUNT
Die Funktion COUNT gibt es in drei Varianten. COUNT(*) zählt alle Zeilen in der Zieltabelle, egal, ob sie Null-Werte enthalten oder nicht. COUNT(ausdruck) zählt die Anzahl der Nicht-NULL-Werte in einer bestimmten Spalte oder in einem Ausdruck. COUNT(DISTINCT ausdruck) schließlich zählt die Anzahl der unterschiedlichen Nicht-NULL-Werte in einer Spalte oder in einem Ausdruck.
Beispiele
Diese Abfrage zählt alle Zeilen in einer Tabelle:
SELECT COUNT(*) FROM publishers;
Die folgende Abfrage findet die Anzahl der Länder, in denen es Verlage gibt:
SELECT COUNT(DISTINCT country) "Count of Countries"
FROM publishers
MIN und MAX
MIN(ausdruck) und MAX(ausdruck) finden den kleinsten respektive größten Wert (String, Datum/Uhrzeit oder numerisch) in einer Menge von Zeilen. DISTINCT oder ALL können bei diesen Funktionen zwar verwendet werden, haben aber keinen Einfluß auf das Ergebnis.
MIN und MAX werden von Microsoft SQL Server, MySQL, Oracle und PostgreSQL unterstützt.
MySQL unterstützt außerdem die Funktionen LEAST( ) und GREATEST( ), die die gleiche Funktionalität aufweisen.
Beispiele
Die folgende Abfrage findet die besten und schlechtesten Verkaufszahlen aller gespeicherten Titel:
SELECT 'MIN' = MIN(ytd_sales), 'MAX' = MAX(ytd_sales)
FROM titles;
Aggregat-Funktionen werden oft in der HAVING-Klausel von Abfragen mit GROUP BY verwendet. Die folgende Abfrage gibt alle Kategorien (Typen) von Büchern aus, bei denen der durchschnittliche Preis aller Bücher in der Kategorie über DM 30 liegt:
SELECT type 'Kategorie', AVG( price ) 'Durchschnittspreis'
FROM titles
GROUP BY type
HAVING AVG(price) > 30
Skalare Funktionen
Skalare Funktionen werden in die in Tabelle 4-2 gezeigten Kategorien aufgeteilt.
| Funktionskategorie |
Erläuterung |
| Eingebaut
|
Führt Operationen auf in der Datenbank eingebauten Werten oder Einstellungen durch.
Oracle verwendet den Ausdruck »built-in« für alle Oracle-spezifischen Funktionen. Dies unterscheidet sich von den hier genannten eingebauten Funktionen.
|
| Datum & Uhrzeit
|
Führt Operationen auf Datetime-Feldern durch und gibt Werte im Datetime-Format zurück.
|
| Numerisch
|
Führt Operationen auf numerischen Werten durch und gibt auch solche Werte zurück.
|
| String
|
Führt Operationen auf Zeichen-Werten (char, varchar, nchar, nvarchar und CLOB) durch und gibt einen String oder einen numerischen Wert zurück.
|
Beachten Sie, daß sowohl CASE als auch CAST Funktionen sind. Sie werden aufgrund ihrer häufigen Verwendung in SQL-Datenanweisungen und ihrer Komplexität in Kapitel 3 behandelt.
Eingebaute skalare Funktionen
Die eingebauten Funktionen in SQL99 nennen die aktuelle Benutzersitzung und deren Charakteristiken, wie etwa ihre Privilegien. Eingebaute skalare Funktionen sind fast immer nicht-deterministisch. Die ersten drei Funktionen in Tabelle 4-3 fallen in die Kategorie der Datums- und Uhrzeit-Funktionen. Obwohl die vier Hersteller viele weitere Funktionen anbieten, die über die hier genannten hinausgehen, definiert der SQL-Standard nur die in Tabelle 4-3 aufgeführten Funktionen.
| CURRENT_DATE
|
Gibt das aktuelle Datum zurück.
|
| CURRENT_TIME
|
Gibt die aktuelle Uhrzeit zurück.
|
| CURRENT_TIMESTAMP
|
Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.
|
| CURRENT_USER
|
Gibt den derzeit aktiven Benutzer im Datenbankserver zurück.
|
| SESSION_USER
|
Gibt die derzeit aktive Autorisierungs-ID zurück, wenn sich diese vom Benutzer unterscheidet.
|
| SYSTEM_USER
|
Gibt den derzeit aktiven Benutzer auf Betriebssystemebene zurück.
|
Microsoft SQL Server unterstützt alle diese eingebauten skalaren Funktionen. Oracle unterstützt die oben genannten Funktionen nicht, dafür aber USER als Synonym für CURRENT_USER und SYSDATE als Synonym für CURRENT_TIMESTAMP. MySQL unterstützt alle von SQL99 definierten eingebauten skalaren Funktionen und darüber hinaus auch die beiden Oracle-Varianten. PostgreSQL unterstützt USER als Synonym für CURRENT_USER. Außerdem unterstützt MySQL NOW( ) und UNIX_TIMESTAMP( ) als Synonyme der Funktion CURRENT_TIMESTAMP. PostgreSQL unterstützt alle von SQL99 definierten eingebauten skalaren Funktionen mit Ausnahme von SESSION_USER.
Beispiele
Die folgenden Abfragen geben die Werte von eingebauten Funktionen zurück. Beachten Sie, daß die verschiedenen Hersteller Datumsangaben in ihren jeweiligen nativen Formaten zurückgeben:
/* MySQL */
SELECT CURRENT_TIMESTAMP;
-> '2001-12-15 23:50:26'
/* Microsoft SQL Server */
SELECT CURRENT_TIMESTAMP
GO
-> 'Dec 15,2001 23:50:26'
/* Oracle */
SELECT USER FROM dual;
-> dylan
Numerische skalare Funktionen
Die Liste der offiziellen numerischen Funktionen in SQL99 ist ziemlich kurz. Die einzelnen Hersteller bieten aber eine große Anzahl weiterer mathematischer und statistischer Funktionen. MySQL unterstützt viele dieser Befehle in seinen SQL99-Inkarnationen. Die anderen Datenbankprodukte unterstützen dieselben numerischen skalaren Funktionen über ihre eigenen intern definierten Funktionen, verwenden aber nicht die gleichen Namen wie der SQL-Standard. Die unterstützten numerischen Funktionen und deren Syntax sind in Tabelle 4-4 aufgeführt.
| BIT_LENGTH(ausdruck)
|
Gibt einen Integer-Wert zurück, der die Anzahl der Bits in einem Ausdruck repräsentiert.
|
| CHAR_LENGTH(ausdruck)
|
Gibt einen Integer-Wert zurück, der die Anzahl der -Zeichen in einem Ausdruck repräsentiert.
|
| EXTRACT(datetime_ausdruck datumsbestandteil FROM ausdruck)
|
Erlaubt das Extrahieren eines Datumsbestandteils (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_HOUR oder TIMEZONE_MINUTE) aus einem Ausdruck.
|
| OCTET_LENGTH(ausdruck)
|
Gibt einen Integer-Wert zurück, der die Anzahl der -Oktette in einem Ausdruck repräsentiert. Dieser Wert ist identisch mit BIT_LENGTH/8.
|
| POSITION(start_string
IN such_string)
|
Gibt einen Integer-Wert zurück, der die Startposition -eines Strings im Suchstring repräsentiert.
|
BIT_LENGTH, CHAR_LENGTH und OCTET_LENGTH
Oracle kommt von allen Herstellern der Funktion BIT_LENGTH am nächsten. Oracle verfügt über die Funktion LENGTHB, die einen Integer-Wert zurückgibt, der die Anzahl der Bytes in einem Ausdruck repräsentiert.
MySQL und PostgreSQL unterstützen CHAR_LENGTH und das SQL99-Synonym CHARACTER_ LENGTH(). PostgreSQL unterstützt darüber hinaus EXTRACT(), OCTET_LENGTH() und POSITION() gemäß dem SQL99-Standard. Die anderen beiden Hersteller haben ähnliche Funktionen mit der gleichen Funktionalität, bei SQL Server ist das die Funktion LEN, bei Oracle die Funktion LENGTH.
MySQL und PostgreSQL unterstützen darüber hinaus auch die Funktion OCTET_LENGTH vollständig.
Beispiel
Das folgende Beispiel bestimmt die Länge eines Strings und eines Wertes, die aus einer Spalte abgerufen wurden:
/* MySQL und PostgreSQL */
SELECT CHAR_LENGTH('Hallo');
SELECT OCTET_LENGTH(book_title) FROM titles;
/* Microsoft SQL Server */
SELECT DATALENGTH(title)
FROM titles
WHERE type = 'popular_comp'
GO
/* Oracle */
SELECT LENGTH('HORATIO') "Länge in Zeichen"
FROM dual;
EXTRACT
Die Funktion EXTRACT wird nur von PostgreSQL und MySQL unterstützt.
Jeder Hersteller unterstützt aber einen anderen Befehl, der dieselbe Funktionalität bietet. Bei Oracle wird mit der Funktion TO_CHAR ein Teil aus einem Datumswert in einen Zeichenstring eingelesen. SQL Server verwendet dazu die Funktion CONVERT.
Die MySQL-Implementierung geht etwas über den SQL99-Standard hinaus. Dieser sieht es nicht vor, in einem Aufruf von EXTRACT() mehrere Felder zurückzugeben (wie etwa in »DAY_HOUR«). Die MySQL-Erweiterungen versuchen, das zu erreichen, was die Kombination aus DATE_TRUNC() und DATE_PART() in PostgreSQL bewirkt. MySQL unterstützt die in Tabelle 4-5 genannten Datumsbestandteile.
| Typ-Wert |
Bedeutung |
Erwartetes Format |
| SECOND
|
Sekunden
|
SECONDS
|
| MINUTE
|
Minuten
|
MINUTES
|
| HOUR
|
Stunden
|
HOURS
|
| DAY
|
Tage
|
DAYS
|
| MONTH
|
Monate
|
MONTHS
|
| YEAR
|
Jahre
|
YEARS
|
| MINUTE_SECOND
|
Minuten und Sekunden
|
»MINUTES:SECONDS«
|
| HOUR_MINUTE
|
Stunden und Minuten
|
»HOURS:MINUTES«
|
| DAY_HOUR
|
Tage und Stunden
|
»DAYS HOURS«
|
| YEAR_MONTH
|
Jahre und Monate
|
»YEARS-MONTHS«
|
| HOUR_SECOND
|
Stunden, Minuten und Sekunden
|
»HOURS:MINUTES:SECONDS«
|
| DAY_MINUTE
|
Tage, Stunden und Minuten
|
»DAYS HOURS:MINUTES«
|
| DAY_SECOND
|
Tage, Stunden, Minuten und Sekunden
|
»DAYSHOURS:MINUTES:SECONDS«
|
Beispiel
Dieses Beispiel extrahiert Datumsbestandteile aus diversen Datums- und Uhrzeitwerten:
/* MySQL */
SELECT EXTRACT(YEAR FROM "2013-07-02");
-> 2013
SELECT EXTRACT(YEAR_MONTH FROM "2013-07-02 01:02:03");
-> 201307
SELECT EXTRACT(DAY_MINUTE FROM "2013-07-02 01:02:03");
-> 20102
POSITION
Die Funktion POSITION gibt einen Integer-Wert zurück, der die Startposition eines Strings in einem Suchstring anzeigt. MySQL und PostgreSQL unterstützen die POSITION-Funktion ohne Abweichung vom SQL99-Standard. PostgreSQL hat eine synonyme Funktion namens TEXTPOS, MySQL die synonyme Funktion LOCATE.
Oracles Äquivalent lautet INSTR. Microsoft SQL Server hat sowohl CHARINDEX als auch PATINDEX. Die beiden sind sich sehr ähnlich, PATINDEX erlaubt aber zudem die Verwendung von Wildcards in den Suchkriterien. Ein Beispiel:
/* MySQL */
SELECT LOCATE('bar', 'foobar');
-> 4
/* MySQL und PostgreSQL */
SELECT POSITION('fu' IN 'snafhu');
-> 0
/* Microsoft SQL Server */
SELECT CHARINDEX( 'de', 'abcdefg' )
GO
-> 4
SELECT PATINDEX( '%fg', 'abcdefg' )
GO
-> 6
Stringfunktionen
Grundlegende Stringfunktionen bieten eine Reihe von Fähigkeiten und geben immer einen Stringwert als Ergebnismenge zurück. Manche Stringfunktionen sind dyadisch, arbeiten also auf zwei Strings gleichzeitig. SQL99 unterstützt die in Tabelle 4-6 genannten Stringfunktionen.
| CONCATENATE (ausdruck || ausdruck)
|
Verknüpft zwei oder mehrere literale Ausdrücke, Spaltenwerte oder Variablen zu einem String.
|
| CONVERT
|
Konvertiert einen String in eine andere Darstellungsweise im gleichen Zeichensatz.
|
| LOWER
|
Konvertiert einen String in Kleinbuchstaben.
|
| SUBSTRING
|
Extrahiert Teile des Strings.
|
| TRANSLATE
|
Konvertiert einen String von einem Zeichensatz in einen anderen.
|
| TRIM
|
Entfernt führende Zeichen, Zeichen am Ende oder beides aus einem String.
|
| UPPER
|
Konvertiert einen String in Großbuchstaben.
|
CONCATENATE
SQL99 definiert einen Verkettungsoperator ( || ), der zwei Strings zu einem Stringwert zusammenfaßt. Die Funktion CONCATENATE hängt zwei oder mehrere Strings zusammen und erzeugt eine einzige Ausgabe. PostgreSQL und Oracle unterstützen den Verkettungsoperator mit den zwei senkrechten Strichen. Microsoft SQL Server verwendet statt dessen das Pluszeichen (+) als Verkettungsoperator.
MySQL unterstützt eine ähnliche Funktion, CONCAT(). Nähere Informationen zur Verkettung in Oracle, PostgreSQL und Microsoft SQL Server finden Sie im Abschnitt »CONCATENATE« in Kapitel 3, Befehlsreferenz aller SQL-Anweisungen.
SQL99-Syntax
CONCATENATE('string1' || 'string2')
MySQL-Syntax
CONCAT(str1, str2, [,...n])
Wenn einer der Verkettungswerte null ist, ist der gesamte zurückgegebene String null. Wenn ein numerischer Wert verknüpft wird, wird er implizit in einen String konvertiert:
SELECT CONCAT('Völker, ', 'hört ', 'die ', 'Signale... ');
-> 'Völker, hört die Signale...'
SELECT CONCAT('Völker ', NULL, 'hört ', 'die ', 'Signale...');
-> NULL
CONVERT und TRANSLATE
Die Funktion CONVERT verändert die Darstellung eines Zeichenstrings innerhalb eines Zeichensatzes und einer Sortierreihenfolge. Beispielsweise könnte man CONVERT verwenden, um die Anzahl der Bits pro Zeichen zu ändern.
TRANSLATE verändert dagegen den Zeichensatz eines Stringwerts. Man könnte damit also beispielsweise einen Wert vom westeuropäischen Zeichensatz in einen japanischen Kanji-Zeichensatz oder einen russischen Zeichensatz ändern. Die Übersetzung muß bereits existieren, entweder eingebaut oder mit dem Befehl CREATE TRANSLATION erzeugt.
SQL99-Syntax
CONVERT (zeichen_wert ziel_zeichensatz USING anwendungsform quell_zeichensatz)
TRANSLATE(zeichen_wert ziel_zeichensatz USING übersetzungsname)
Oracle ist die einzige der hier besprochenen Datenbanken, in der CONVERT und TRANSLATE mit der gleichen Bedeutung wie in SQL99 unterstützt werden. Oracles Implementierung von TRANSLATE ähnelt der von SQL99 sehr, ist aber nicht identisch. In der eigenen Implementierung erwartet Oracle nur zwei Argumente und erlaubt nur die Übersetzung zwischen dem Zeichensatz der Datenbank und dem Zeichensatz der NLS-Unterstützung.
MySQLs Implementierung der CONVERT-Funktion übersetzt nur Zahlen von einer Basis in eine andere. Die CONVERT-Implementierung von Microsoft SQL Server ist dagegen eine sehr umfangreiche Hilfe, die den Basis-Datentyp eines Ausdrucks ändert, sonst aber nicht viel mit der CONVERT-Funktion in SQL99 gemeinsam hat. PostgreSQL unterstützt CONVERT nicht; die PostgreSQL-Implementierung von TRANSLATE dient dazu, eine Instanz eines Zeichenstrings in einen anderen Zeichenstring zu verwandeln.
MySQL: Syntax und Variationen
CONV(int, quell_basis, ziel_basis)
MySQL unterstützt TRANSLATE nicht. Die MySQL-Implementierung von CONVERT gibt einen Stringwert zurück, der eine Zahl repräsentiert, die von der Basis quell_basis in die Basis ziel_basis konvertiert wurde. Wenn eine Zahl NULL ist, dann gibt die Funktion NULL zurück. Einige Beispiele:
SELECT CONV("a",16,2);
-> '1010'
SELECT CONV("6E",18,8);
-> '172'
SELECT CONV(-17,10,-18);
-> '-H'
Microsoft SQL Server: Syntax und Variationen
CONVERT (datentyp[(laenge) | (genauigkeit,stellen)], ausdruck[,stil])
Microsoft SQL Server unterstützt TRANSLATE nicht. Die Microsoft-Implementierung der Funktion CONVERT folgt nicht der SQL99-Spezifikation. Sie ist statt dessen in ihrer Funktionsweise äquivalent zur Funktion CAST. Die stil-Klausel wird verwendet, um das Format der Datumskonvertierung anzugeben. Nähere Informationen finden Sie in der Hersteller-Dokumentation. Ein Beispiel:
SELECT title, CONVERT(char(7), ytd_sales)
FROM titles
ORDER BY title
GO
Oracle: Syntax und Variationen
CONVERT('zeichen_wert', ziel_zeichensatz, quell_zeichensatz)
TRANSLATE('zeichen_wert', 'quell_text', 'ziel_text')
In der Oracle-Implementierung gibt die CONVERT-Funktion den zeichen_wert im Ziel-Zeichensatz zurück. Der zeichen_wert ist der zu konvertierende String, der ziel_zeichensatz der Name des Zeichensatzes, in den der zeichen_wert konvertiert wird. quell_zeichensatz ist der Name des Zeichensatzes, in dem der zeichen_wert ursprünglich konvertiert war.
Sowohl der Ziel- als auch der Quell-Zeichensatz kann aus literalen Strings, Variablen oder Spalten bestehen, die den Namen des Zeichensatzes enthalten. Beachten Sie, daß unzulängliche Ersetzungszeichen ersetzt werden können, wenn aus einem oder in einen Zeichensatz konvertiert wird, der nicht alle in der Konvertierung vorkommenden Zeichen unterstützt.
Oracle unterstützt mehrere häufig vorkommende Zeichensätze, darunter US7ASCII, WE8DECDEC, WE8HP, F7DEC, WE8EBCDIC500, WE8PC850 und WE8ISO8859P1. Ein Beispiel:
SELECT CONVERT('Groß', 'US7ASCII', 'WE8HP')
FROM DUAL;
->Gross
PostgreSQL: Syntax und Variationen
TRANSLATE (zeichen_string, quell_text, ziel_text)
PostgreSQL unterstützt CONVERT nicht. Die PostgreSQL-Implementierung der TRANSLATE-Funktion leistet dagegen viel mehr, als in der SQL99-Spezifikation angegeben. Sie konvertiert jedes Auftreten eines Textstrings in einen anderen String innerhalb eines weiteren angegebenen Strings. Ein Beispiel:
SELECT TRANSLATE('12345abcde', '5a', 'XX');
-> 1234XXbcde
SELECT TRANSLATE(title, 'Computer', 'PC')
FROM titles
WHERE type = 'Personal_computer'
LOWER und UPPER
Mit den Funktionen LOWER und UPPER kann ein String schnell und einfach in nur Kleinbuchstaben bzw. nur Großbuchstaben konvertiert werden. Diese Funktionen werden in allen in diesem Buch behandelten Datenbank-Implementierungen unterstützt.
Beispiel
SELECT LOWER('Sprichst Du mit MIR?'), UPPER('sprichst du mit mir?!');
-> sprichst du mit mir?, SPRICHST DU MIT MIR?!
Die einzelnen Datenbankhersteller unterstützen darüber hinaus eine Reihe von implementierungsspezifischen Textformatierungsfunktionen.
SUBSTRING
Mit der Funktion SUBSTRING kann ein Zeichenstring aus einem anderen Zeichenstring extrahiert werden.
SQL99-Syntax
SUBSTRING(ausgangs_string FROM start_position [FOR laenge]
[COLLATE sortierung])
Wenn einer der Parameter NULL ist, gibt die Funktion SUBSTRING NULL zurück. Der ausgangs_string ist der String, aus dem der Zeichenwert extrahiert wird. Dies kann ein literaler String, eine Spalte in einer Tabelle mit einem Zeichen-Datentyp oder eine Variable mit einem Zeichen-Datentyp sein. Die start_position ist ein Integer-Wert, der angibt, ab welcher Position extrahiert werden soll. Die optionale laenge ist ein Integer-Wert, der angibt, wie viele Zeichen extrahiert werden sollen, beginnend mit start_position.
MySQL: Syntax und Variationen
SUBSTRING(ausgangs_string FROM start_position)
Die MySQL-Implementierung geht davon aus, daß die Zeichen von der Startposition bis zum Ende des Strings extrahiert werden sollen.
Microsoft SQL Server: Syntax und Variationen
SUBSTRING(ausgangs_string [FROM start_position] [FOR laenge])
Microsoft SQL Server unterstützt im großen und ganzen den SQL99-Standard, allerdings nicht die COLLATE-Klausel. Im SQL Server kann dieser Befehl auf Text, Bilder und binäre Datentypen angewendet werden; die start_position und die laenge repräsentieren die Anzahl der Bytes und nicht die Anzahl der zu zählenden Zeichen.
Oracle: Syntax und Variationen
SUBSTR(ausgangs_string, start_position [, laenge])
Oracles Implementierung, SUBSTR, funktioniert im wesentlichen so, wie im SQL99-Standard beschrieben, unterstützt aber nicht die COLLATE-Klausel. Wenn die start_position eine negative Zahl ist, zählt Oracle vom Ende des ausgangs_strings. Wenn laenge weggelassen wird, wird der Rest des Strings (beginnend mit start_position) zurückgegeben.
PostgreSQL: Syntax und Variationen
SUBSTRING(ausgangs_string [FROM start_position] [FOR laenge])
PostgreSQL unterstützt im großen und ganzen den SQL99-Standard, allerdings nicht die COLLATE-Klausel.
Beispiele
Diese Beispiele funktionieren fast alle mit allen vier der in diesem Buch besprochenen Datenbanken. Nur das zweite, Oracle-spezifische Beispiel mit einer negativen Startposition funktioniert nicht mit den anderen Datenbanken (natürlich muß Oracles SUBSTR zu SUBSTRING geändert werden):
/* Oracle, von links gezählt */
SELECT SUBSTR('ABCDEFG',3,4) FROM DUAL;
-> CDEF
/* Oracle, von rechts gezählt */
SELECT SUBSTR('ABCDEFG',-5,4) FROM DUAL;
-> CDEF
/* MySQL */
SELECT SUBSTRING('Be vewy, vewy quiet',5);
-> 'wy, vewy quiet''
/* PostgreSQL und SQL Server */
SELECT au_lname, SUBSTRING(au_fname, 1, 1)
FROM authors
WHERE au_lname = 'Carson'
-> Carson C
TRIM
Die Funktion TRIM entfernt führende Leerzeichen, Zeichen am Ende oder beides aus dem angegebenen Zeichenstring. Diese Funktion entfernt auch andere Arten von Zeichen aus dem angegebenen Zeichenstring. Die voreingestellte Funktionsweise entfernt das angegebene Zeichen von beiden Seiten des Zeichenstrings. Wenn kein String zum Entfernen angegeben wird, entfernt TRIM standardmäßig Leerzeichen.
SQL99-Syntax
TRIM( [ [{LEADING | TRAILING | BOTH}] [zu_entfernender_string] FROM ]
ziel_string
[COLLATE sortierung])
Der zu_entfernende_string ist der zu entfernende Zeichenstring. Der ziel_string ist der Zeichenstring, aus dem die Zeichen entnommen werden sollen. Wenn kein solcher angegeben wird, dann entfernt TRIM Leerzeichen. Die COLLATE-Klausel setzt die Ergebnismenge der Funktion in eine andere, bereits existierende Sortierreihenfolge um.
MySQL, PostgreSQL und Oracle unterstützen die SQL99-Syntax von TRIM.
Microsoft SQL Server (und auch die anderen Hersteller) stellt die Funktionen LTRIM und RTRIM zur Verfügung, um führende Leerzeichen respektive Leerzeichen am Ende zu entfernen. LTRIM und RTRIM können nicht verwendet werden, um andere Zeichen zu entfernen.
Beispiele
SELECT TRIM(' wamalamadingdong ');
-> 'wamalamadingdong'
SELECT TRIM(LEADING '19' FROM '1976 AMC GREMLIN');
-> '76 AMC GREMLIN'
SELECT TRIM(BOTH 'x' FROM 'xxxWHISKEYxxx');
-> 'WHISKEY'
SELECT TRIM(TRAILING 'snack' FROM 'scooby snack');
-> 'scooby '
Herstellerspezifische Erweiterungen
Der folgende Abschnitt enthält eine vollständige Aufstellung und Beschreibung der von den einzelnen Herstellern unterstützten Funktionen. Diese Funktionen sind alle herstellerspezifisch. Eine MySQL-Funktion funktioniert also nicht unbedingt mit anderen Datenbanken. Die MySQL-Funktionen sind hier angegeben, um Ihnen einen Eindruck von den Fähigkeiten der einzelnen Produkte zu geben. Die genaue Syntax finden Sie jeweils in der Hersteller-Dokumentation.
In Microsoft SQL Server unterstützte Funktionen
Tabelle 4-7 enthält eine alphabetische Aufstellung der von Microsoft SQL Server unterstützten Funktionen.
| abs(numerischer_ausdruck)
|
Gibt den absoluten Wert zurück.
|
| acos(float_ausdruck)
|
Gibt den Winkel (im Bogenmaß) zurück, dessen Kosinus das angegebene Argument ist.
|
| app_name()
|
Gibt den von der Applikation festgelegten Applikationsnamen der aktuellen Sitzung zurück.
|
| ascii(zeichen_ausdruck)
|
Konvertiert ein Zeichen in seinen numerischen ASCII-Code.
|
| asin(float_ausdruck)
|
Gibt den Winkel (im Bogenmaß) zurück, dessen Sinus das angegebene Argument ist.
|
| atan(float_ausdruck)
|
Gibt den Winkel (im Bogenmaß) zurück, dessen Tangens das angegebene Argument ist.
|
| atn2(float_ausdruck, float_ausdruck)
|
Gibt den Winkel (im Bogenmaß) zurück, dessen Tangens zwischen den beiden angegebenen float-Ausdrücken liegt.
|
| avg([ All| Distinct] Ausdruck)
|
Berechnet den durchschnittlichen Wert einer Spalte.
|
| binary_checksum(* | ausdruck [,...n])
|
Gibt eine binäre Prüfsumme über die Liste von Ausdrücken oder die Spalte einer Tabelle zurück.
|
| cast(Ausdruck als Datentyp)
|
Konvertiert einen zulässigen SQL Server-Ausdruck in den angegebenen Datentyp.
|
| ceiling(numerischer_ausdruck)
|
Gibt den kleinsten Integer-Wert zurück, der größer oder gleich dem Argument ist.
|
| char(integer_ausdruck)
|
Konvertiert einen numerischen ASCII-Code in ein Zeichen.
|
| charindex(ausdruck1, ausdruck2 [, start_position])
|
Gibt die Position des ersten Auftretens eines Substrings in einem String zurück.
|
| checksum(* | ausdruck [,...n])
|
Gibt einen Prüfsummenwert (berechnet über die angegebenen Zeilenwerte oder Ausdrücke) zurück.
|
| checksum_agg([ALL | Distinct] ausdruck)
|
Gibt die Prüfsumme der Werte in der Gruppe zurück.
|
| coalesce(ausdruck [,...n])
|
Gibt das erste von NULL verschiedene Argument aus einer Liste von Argumenten zurück.
|
| col_length(`tabelle', `spalte')
|
Gibt die Spaltenlänge in Bytes zurück.
|
| col_name(tabellen_id, spalten_id)
|
Gibt den Spaltennamen zu einer gegebenen Tabellen- und Spalten-ID zurück.
|
| contains({spalte | }, `enthaelt_such_bedingung'})
|
Durchsucht Spalten nach genauen oder »fuzzy« Treffern von enthaelt_such_bedingung. Dies ist eine komplexe Funktion, die zur Volltextsuche verwendet wird. Nähere Informationen finden Sie in der Hersteller-Dokumentation.
|
| containsable(Tabelle, Spalte, 'enthaelt_such_bedingung')
|
Gibt eine Tabelle mit exakten und »fuzzy«-Treffern von enthaelt_such_bedingung zurück. Dies ist eine komplexe Funktion, die zur Volltextsuche verwendet wird. Nähere Informationen finden Sie in der Hersteller-Dokumentation.
|
| convert(datentyp [(laenge)], ausdruck [, stil])
|
Konvertiert Daten von einem Datentyp in einen anderen.
|
| cos(float_ausdruck)
|
Gibt den Kosinus zurück.
|
| cot(float_ausdruck)
|
Gibt den Kotangens zurück.
|
| count({[All | Distinct] ausdruck]| *})
|
Zählt die Spalten.
|
| count(*)
|
Berechnet die Anzahl der Reihen, einschließlich derjenigen mit NULL-Werten.
|
| count( DISTINCT ausdruck )
|
Berechnet die Anzahl unterschiedlicher, von NULL verschiedener Werte in einer Spalte oder einem Ausdruck. Jede Gruppe von Zeilen mit dem gleichen Wert von ausdruck erhöht das Ergebnis um 1.
|
| count( ausdruck )
|
Gibt die Anzahl der Zeilen mit von NULL verschiedenen Werten in einer bestimmten Spalte oder einem Ausdruck zurück.
|
| count_big([All | Distinct] ausdruck)
|
Wie count, gibt aber einen großen Integer-Wert zurück.
|
| current_timestamp
|
Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.
|
| current_user
|
Gibt den Benutzernamen in der aktuellen Datenbank und der aktuellen Sitzung zurück.
|
| datalength(ausdruck)
|
Gibt die Anzahl der Bytes in einem Zeichen- oder binären String zurück.
|
| databasepropertyex(datenbank, eigenschaft)
|
Gibt die Datenbankoption oder -eigenschaft zurück.
|
| dateadd(datumsbestandteil, nummer, datum)
|
Fügt eine Anzahl Datumsbestandteile (z.B. Tage) zu einem Datetime-Wert hinzu.
|
| datediff(datumsbestandteil, startdatum, enddatum)
|
Berechnet die Differenz zwischen zwei Datetime-Werten, die in bestimmten Datumsbestandteilen ausgedrückt wird.
|
| datename(datumsbestandteil, datum)
|
Gibt den Namen eines Datumsbestandteils (z.B. Monat) eines Datetime-Arguments zurück.
|
| datepart(datumsbestandteil, datum)
|
Gibt den Wert eines Datumsbestandteils (z.B. Stunde) eines Datetime-Arguments zurück.
|
| day(datum)
|
Gibt einen Integer-Wert zurück, der den Tag des als Parameter übergebenen Datums repräsentiert.
|
| db_id(`[datenbank_name]')
|
Gibt die Datenbank-ID und den angegebenen Namen zurück.
|
| db_name(datenbank_id)
|
Gibt den Namen der Datenbank zurück.
|
| degrees(numerischer_ausdruck)
|
Konvertiert Bogenmaß in Grad.
|
| difference(zeichen_ausdruck, zeichen_ausdruck)
|
Vergleicht, wie zwei Argumente klingen, und gibt eine Zahl zwischen 0 und 4 zurück. Höhere Werte bedeuten bessere phonetische Übereinstimmungen.
|
| exp(float_ausdruck)
|
Gibt den Exponentialwert zurück.
|
| floor(numerischer_ausdruck)
|
Gibt den größten Integer-Wert zurück, der kleiner oder gleich dem Argument ist.
|
| file_id(`datei_name')
|
Gibt die Datei-ID des logischen Dateinamens zurück.
|
| file_name(datei_id)
|
Gibt den logischen Dateinamen einer Datei-ID zurück.
|
| filegroup_id (`dateigruppen_name')
|
Gibt die Dateigruppen-ID für den logischen Dateigruppennamen zurück.
|
| filegroup_name (dateigruppen_id)
|
Gibt den logischen Dateigruppennamen für die Dateigruppen-ID zurück.
|
| filegroupproperty (dateigruppen_name, eigenschaft)
|
Gibt den Wert der Dateigruppen-Eigenschaft für die angegebene Eigenschaft zurück.
|
| fileproperty (datei, eigenschaft)
|
Gibt den Wert der Dateieigenschaft für die angegebene Eigenschaft zurück.
|
| fulltextcatalog property(katalog_name, eigenschaft)
|
Gibt die Volltext-Katalogeigenschaften zurück.
|
| fulltextservice property(eigenschaft)
|
Gibt die Eigenschaften der Volltext-Dienste-ebene zurück.
|
| formatmessage (meldungs_nummer, param_wert [,... n ])
|
Konstruiert eine Meldung aus einer existierenden Meldung in der SYSMESSAGES- Tabelle (ähnlich wie RAISERROR).
|
| freetexttable(tabelle { spalte |*}, `freitext_string' [, top_n_nach_rang])
|
Wird für Volltext-Suche verwendet; gibt eine Tabelle mit Spalten zurück, die auf die Bedeutung, aber nicht genau auf den Wert von freitext_string passen.
|
| getdate()
|
Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.
|
| getansinull([`datenbank'])
|
Gibt die Einstellung der Standard-NULL- Zulässigkeit für neue Spalten zurück.
|
| getutcdate()
|
Gibt das Universal Time Coordinate-Datum (UTC) zurück.
|
| grouping(spalten_name)
|
Gibt 1 zurück, wenn die Zeile durch CUBE oder ROLLUP hinzugefügt wurde, ansonsten 0.
|
| host_id()
|
Gibt die Workstation-ID eines bestimmten Prozesses zurück.
|
| host_name()
|
Gibt den Hostnamen des Prozesses zurück.
|
| ident_incr (`tabelle_oder_view')
|
Gibt den inkrementierten Wert der Identitätsspalte zurück.
|
| ident_seed (`tabelle_oder_view')
|
Gibt den Ausgangswert der Identität zurück.
|
| ident_current (`tabellenname')
|
Gibt den letzten Identitätswert zurück, der für die angegebene Tabelle erzeugt wurde.
|
| identity(daten_typ [, seed, inkrement]) As spalten_name
|
Wird in SELECT INTO-Anweisungen verwendet, um eine Identitätsspalte in die Zieltabelle einzufügen.
|
| index_col(`tabelle', index_id, schluessel_id)
|
Gibt den Namen der Indexspalte zu einer Tabellen-ID, einer Index-ID und der Folgenummer der Spalte im Indexschlüssel zurück.
|
| indexproperty(tabellen_id, index, eigenschaft)
|
Gibt eine Indexeigenschaft (wie Fillfactor) zurück.
|
| isdate(ausdruck)
|
Überprüft, ob ein Zeichenstring in einen DATETIME-Wert konvertiert werden kann.
|
| is_member({`gruppe' | `rolle'})
|
Gibt true oder false (1 oder 0) zurück, je nachdem, ob der Benutzer ein Mitglied einer NT-Gruppe oder einer SQL Server-Rolle ist.
|
| is_srvrolemember (`rolle' [,'login'])
|
Gibt true oder false (1 oder 0) zurück, je nachdem , ob der Benutzer ein Mitglied der angegebenen Server-Rolle ist.
|
| isnull(ausdruck, ersatzwert)
|
Gibt das erste Argument zurück, wenn es nicht NULL ist, ansonsten das zweite Argument.
|
| isnumeric(ausdruck)
|
Überprüft, ob ein Zeichenstring in einen NUMERIC-Wert konvertiert werden kann.
|
| left(zeichen_ausdruck, integer_ausdruck)
|
Gibt einen Teil eines Zeichenausdrucks zurück, beginnend an Position integer_ausdruck von links.
|
| len(string_ausdruck)
|
Gibt die Anzahl der Zeichen im Ausdruck zurück.
|
| log(float_ausdruck)
|
Gibt den natürlichen Logarithmus zurück.
|
| log10(float_ausdruck)
|
Gibt den Logarithmus zur Basis 10 zurück.
|
| lower(zeichen_ausdruck)
|
Konvertiert einen String in Kleinbuchstaben.
|
| ltrim(zeichen_ausdruck)
|
Entfernt führende Leerzeichen.
|
| max([All | Distinct] ausdruck)
|
Findet den größten Wert in einer Spalte.
|
| min([All | Distinct] ausdruck)
|
Findet den kleinsten Wert in einer Spalte.
|
| month(datum)
|
Gibt den Monatsbestandteil des übergebenen Datums zurück.
|
| nchar(integer_ausdruck)
|
Gibt das Unicode-Zeichen mit dem angegebenen Integer-Code zurück.
|
| newid()
|
Erzeugt einen neuen eindeutigen Bezeichner des Typs uniqueidentifier.
|
| nullif(ausdruck, ausdruck)
|
Gibt NULL zurück, wenn die beiden Ausdrücke äquivalent sind.
|
| object_id(`objekt')
|
Gibt die Objekt-ID und den angegebenen Namen zurück.
|
| object_name(objekt_id)
|
Gibt den Objektnamen und die angegebene ID zurück.
|
| objectproperty (id, eigenschaft)
|
Gibt die Eigenschaften von Objekten in der aktuellen Datenbank zurück.
|
| open{[Global]cursor_name}| cursor_variablen_name}
|
Öffnet einen lokalen oder globalen Cursor. Beispiele finden Sie im Abschnitt über die Sprachelemente.
|
| opendatasource(provider_name, initialisierungs_string)
|
Baut eine Verbindung zu einer Datenquelle auf, ohne den Namen eines Verbindungsservers zu verwenden.
|
| openquery(verbundener_server, `abfrage')
|
Fragt eine entfernte Datenquelle ab, die zuvor als Verbindungsserver
eingerichtet wurde.
|
| openrowset(`provider_name', {`datenquelle';
`benutzer_id',passwort | `provider_string'},
{[katalog.][schema.]objekt | `abfrage'})
|
Fragt eine entfernte Datenquelle ab, ohne sie als Verbindungsserver einzurichten.
|
| parsename(`objekt_name', objekt_stueck)
|
Gibt den Datenbanknamen, den Besitzernamen, den Servernamen oder den Objektnamen des angegebenen Objekts zurück. objekt_stueck ist eine ganze Zahl zwischen 1 und 4.
|
| patindex(`%muster%', ausdruck)
|
Gibt die Position des ersten Auftretens eines Musters in einem String zurück.
|
| permissions(objekt_id, spalte)
|
Gibt einen Wert zurück, der eine Bitmap mit den Zugriffsrechten des aktuellen Benutzers auf das angegebene Objekt oder die angegebene Spalte enthält.
|
| pi
|
Gibt die Konstante Pi zurück.
|
| power(numerischer_ausdruck, y)
|
Gibt den ersten Ausdruck hoch den zweiten Ausdruck zurück.
|
| radians(numerischer_ausdruck)
|
Konvertiert Altgrade in Bogenmaß.
|
| rand([seed])
|
Gibt Pseudo-Zufallszahlen als FLOAT-Wert zwischen 0 und 1 zurück.
|
| replace(`string_ausdruck1', `string_ausdruck2',`string_ausdruck3')
|
Ersetzt im ersten Ausdruck den zweiten Ausdruck durch den dritten Ausdruck.
|
| replicate(zeichen_ausdruck, integer_ausdruck)
|
Wiederholt den String mehrere Male.
|
| reverse(zeichen_ausdruck)
|
Dreht die Zeichen eines Strings um.
|
| right(zeichen_ausdruck, integer_ausdruck)
|
Gibt die integer_ausdruck rechts stehenden Zeichen in zeichen_ausdruck zurück.
|
| rtrim(zeichen_ausdruck)
|
Entfernt rechts stehende Leerzeichen aus dem Ausdruck.
|
| round(numerischer_ausdruck, laenge [,funktion])
|
Rundet das Argument auf die angegebene Genauigkeit.
|
| rowcount_big()
|
Gibt die Anzahl der Zeilen zurück, die von der letzten Abfrage betroffen waren (wie @@ROWCOUNT).
|
| session_user
|
Gibt den Benutzernamen der aktuellen Verbindung zurück.
|
| sign(numerischer_ausdruck)
|
Gibt -1 zurück, wenn das Argument negativ ist, 0, wenn es 0 ist, und 1, wenn das Argument positiv ist.
|
| sin(float_ausdruck)
|
Gibt den Sinus zurück.
|
| soundex(zeichen_ausdruck)
|
Gibt einen vier Zeichen langen Code zurück, der den Klang des Arguments repräsentiert.
|
| space(integer_ausdruck)
|
Gibt einen String zurück, der die angegebene Anzahl von Leerzeichen enthält.
|
| stats_date(tabellen_id, index_id)
|
Gibt Datum und Uhrzeit der letzten Aktualisierung der Index-Statistik zurück.
|
| stdev(ausdruck)
|
Gibt die Standardabweichung der Werte in der Spalte zurück.
|
| stdevp(ausdruck)
|
Gibt die Standardabweichung der Werte-population zurück.
|
| str(float_ausdruck [, laenge [, dezimale]])
|
Konvertiert numerische Daten in Zeichenstrings.
|
| stuff(zeichen_ausdruck, start, laenge, zeichen_ausdruck)
|
Ersetzt einen Teil eines Strings durch einen anderen String.
|
| substring(ausdruck, start, laenge)
|
Extrahiert einen Teil eines Strings.
|
| sum([All | Distinct] ausdruck)
|
Berechnet die Summe der Spaltenwerte.
|
| suser_id([`login'])
|
Gibt die System-Benutzer-ID des angegebenen Login-Namens zurück. In SQL Server 2000 gibt diese Funktion übrigens immer NULL zurück und sollte daher vermieden werden.
|
| suser_sid([`login'])
|
Gibt die Sicherheits-ID (SID) des aktuellen Benutzers oder des angegebenen Login- Namens im Binärformat zurück.
|
| suser_sname([server_benutzer_sid])
|
Gibt den Login-Namen zur Sicherheits-ID (SID) des aktuellen Benutzers oder zur angegebenen Sicherheits-ID zurück.
|
| system_user
|
Gibt den Login-Namen der aktuellen Sitzung zurück.
|
| tan(float_ausdruck)
|
Gibt den Tangens des übergebenen Ausdrucks zurück.
|
| textptr(spalte)
|
Gibt einen Zeiger auf eine text-, ntext- oder image-Spalte im varbinary-Format zurück.
|
| textvalid(`tabelle.spalte', text_zgr)
|
Gibt true oder false (1 oder 0) zurück, je nachdem, ob der übergebene Zeiger auf text, ntext oder image gültig ist.
|
| typeproperty(datentyp,eigenschaft)
|
Gibt Informationen über die Eigenschaften des Datentyps zurück.
|
| unicode(`nchar_ausdruck')
|
Gibt den Unicode-Integer-Wert des ersten Zeichens des Parameters zurück.
|
| user
|
Gibt den Benutzernamen der aktuellen Verbindung in der aktuellen Datenbank zurück.
|
| user_id([`benutzer'])
|
Gibt die Benutzer-ID in der aktuellen Datenbank zurück.
|
| user_name([id])
|
Gibt den Benutzernamen in der aktuellen Datenbank zurück.
|
| upper(zeichen_ausdruck)
|
Konvertiert einen String in Großbuchstaben.
|
| var(ausdruck)
|
Gibt die statistische Varianz der Spalte zurück.
|
| varp(ausdruck)
|
Gibt die statistische Varianz für eine Population aller Werte im Ausdruck zurück.
|
| year(datum)
|
Gibt eine Integer-Zahl zurück, die das Jahr des angegebenen Datums repräsentiert.
|
Unterstützte Funktionen in MySQL
Tabelle 4-8 enthält eine alphabetische Liste aller von MySQL unterstützten Funktionen.
| abs(X)
|
Gibt den absoluten Wert von X zurück.
|
| acos(X)
|
Gibt den Arkus Kosinus von X zurück, also den Wert, dessen Kosinus X ist; gibt NULL zurück, wenn X nicht im Bereich von -1 bis 1 liegt.
|
| ascii(str)
|
Gibt den ASCII-Codewert des am weitesten links liegenden Zeichens des Strings str zurück; gibt 0 zurück, wenn str der leere String ist; gibt NULL zurück, wenn str NULL ist.
|
| asin(X)
|
Gibt den Arkus Sinus von X zurück, also den Wert, dessen Sinus X ist; gibt NULL zurück, wenn X nicht im Bereich von -1 bis 1 liegt.
|
| atan(X)
|
Gibt den Arkus Tangens von X zurück, also den Wert, dessen Tangens X ist.
|
| atan2(X,Y)
|
Gibt den Arkus Tangens der beiden Variablen X und Y zurück.
|
| avg(ausdruck)
|
Gibt den Durchschnittswert von ausdruck zurück.
|
| benchmark(anzahl,ausdruck)
|
Berechnet den Ausdruck ausdruck anzahl-mal. Dies kann verwendet werden, um zu bestimmen, wie schnell MySQL den Ausdruck verarbeitet. Das Ergebnis ist immer 0.
|
| binary
|
Konvertiert den folgenden String in einen Binärstring.
|
| bin(N)
|
Gibt eine String-Darstellung des binären Werts von N zurück, wobei N eine BIGINT-Zahl ist.
|
| bit_count(N)
|
Gibt die Anzahl der im Argument N gesetzten Bits zurück.
|
| bit_and(ausdruck)
|
Gibt die bitweise UND-Verknüpfung aller Bits in ausdruck zurück. Die Berechnung wird mit 64-Bit-Genauigkeit durchgeführt.
|
| bit_or(ausdruck)
|
Gibt die bitweise ODER-Verknüpfung aller Bits in ausdruck zurück. Die Berechnung wird mit 64-Bit-Genauigkeit durchgeführt.
|
| CASE wert WHEN [vergleichswert] THEN ergebnis [WHEN [vergleichswert] THEN ergebnis ...] [ELSE ergebnis] END
CASE WHEN [bedingung] THEN ergebnis [WHEN [bedingung] THEN ergebnis ...] [ELSE ergebnis] END
|
Die erste Version gibt das Ergebnis von wert=vergleichswert zurück. Die zweite Version gibt das Ergebnis zurück, für das die erste Bedingung wahr ist.
Wenn es keinen passenden Ergebniswert gibt, wird das Ergebnis nach ELSE zurückgegeben, wenn es auch keinen ELSE-Zweig gibt, wird NULL zurückgegeben.
|
| ceiling(X)
|
Gibt den kleinsten Integer-Wert zurück, der größer oder gleich X ist.
|
| char(N,...)
|
Interpretiert die Argumente als Integer-Werte und gibt einen String zurück, der aus den Zeichen besteht, die sich aus den ASCII- Codes dieser Integer-Werte ergeben. NULL-Werte werden ausgelassen.
|
| coalesce(liste)
|
Gibt das erste von NULL verschiedene Element in der Liste zurück.
|
| concat(str1,str2,...)
|
Gibt den String zurück, der sich aus der Verknüpfung der Argumente ergibt.
|
| concat_ws(trennzeichen, str1, str2,...)
|
Steht für CONCAT With Separator und ist eine besondere Form von CONCAT( ). Das erste Argument ist das Trennzeichen für den Rest der Argumente. Das Trennzeichen und der Rest der Argumente können Strings sein. Wenn das Trennzeichen NULL ist, ist das Ergebnis NULL. Die Funktion überspringt NULL-Werte und leere Strings nach dem Trennzeichen-Argument. Das Trennzeichen wird jeweils zwischen den aneinanderzuhängenden Strings eingefügt.
|
| connection_id()
|
Gibt die Verbindungs-ID (thread_id) der Verbindung zurück. Jede Verbindung hat eine eigene eindeutige ID.
|
| conv(N,quell_basis,ziel_basis)
|
Konvertiert Zahlen zwischen verschiedenen Basen; gibt eine String-Darstellung der Zahl N zurück, die von der Basis quell_basis in die Basis ziel_basis konvertiert wurde; gibt NULL zurück, wenn mindestens eines der Argumente NULL ist.
|
| cos(X)
|
Gibt den Kosinus von X zurück, wobei X im Bogenmaß angegeben wird.
|
| cot(X)
|
Gibt den Kotangens von X zurück.
|
| count(DISTINCT ausdruck,[ausdruck...])
|
Gibt die Anzahl der unterschiedlichen Werte zurück.
|
| count(ausdruck)
|
Gibt die Anzahl der von NULL verschiedenen Werte in den durch eine SELECT-Anweisung geholten Zeilen zurück.
|
| curdate()
current_date
|
Gibt das heutige Datum als Wert im Format `YYYY-MM-DD' oder YYYYMMDD zurück, je nachdem, ob die Funktion in einem String- oder einem numerischen Kontext aufgerufen wird.
|
| curtime()
current_time
|
Gibt die aktuelle Zeit als Wert im Format `HH:MM:SS' oder HHMMSS zurück, je nachdem, ob die Funktion in einem String- oder einem numerischen Kontext verwendet wird.
|
| database()
|
Gibt den aktuellen Datenbanknamen zurück.
|
| date_add(datum,INTERVAL ausdruck typ)
date_sub(datum,INTERVAL ausdruck typ)
adddate(datum,INTERVAL ausdruck typ)
subdate(datum,INTERVAL ausdruck typ)
|
Diese Funktionen führen Datumsarithmetik durch. ADDDATE( ) und SUBDATE( ) sind Synonyme für DATE_ADD( ) und DATE_SUB( ). datum ist ein DATETIME- oder DATE-Wert, der das Startdatum angibt. ausdruck ist ein Ausdruck, der das zu addierende oder zu subtrahierende Intervall angibt. ausdruck kann mit einem - beginnen, um negative Intervalle anzuzeigen. typ zeigt an, wie der Ausdruck interpretiert werden sollte.
|
| date_format (datum,format)
|
Formatiert den Datumswert entsprechend dem Formatstring.
|
| dayname(datum)
|
Gibt den Namen des Wochentages des Datums zurück.
|
| dayofmonth(datum)
|
Gibt den Tag im Monat des Datums im Bereich von 1 bis 31 zurück.
|
| dayofweek(datum)
|
Gibt den Wochentagsindex für das Datum zurück (1 = Sonntag, 2 = Montag, . . . 7 = Samstag).
|
| dayofyear(datum)
|
Gibt den Tag im Jahr des Datums im Bereich von 1 bis 366 zurück.
|
| decode(crypt_str, pass_str)
|
Entschlüsselt den verschlüsselten String crypt_str unter Verwendung von pass_str als Paßwort. crypt_str sollte ein von ENCODE( ) zurückgegebener String sein.
|
| degrees(X)
|
Gibt das Argument X, konvertiert von Bogenmaß in Grad, zurück.
|
| elt(N,str1,str2,str3,...)
|
Gibt str1 zurück, wenn N = 1, str2, wenn N = 2 und so weiter. Gibt NULL zurück, wenn N kleiner als 1 oder größer als die Anzahl der Argumente ist. ELT( ) ist das Gegenstück zu FIELD( ).
|
| encode(str,pass_str)
|
Verschlüsselt str unter Verwendung von pass_str als Paßwort. Verwenden Sie DECODE( ), um das Ergebnis zu entschlüsseln. Das Ergebnis ist ein binärer String mit der gleichen Länge wie der Ausgangsstring.
|
| encrypt(str[,salt])
|
Verschlüsselt str mit dem Unix-Systemaufruf crypt(). Das Argument salt sollte ein String mit zwei Zeichen sein.
|
| exp(X)
|
Gibt den Wert von e (der Basis der natürlichen Logarithmen) zur X-ten Potenz zurück.
|
| export_set (bits,an,aus,[trennzeichen, [anzahl_bits]])
|
Gibt einen String zurück, bei dem jedes Bit, das in bits gesetzt ist, einen `an'-String und jedes Bit, das in bits nicht gesetzt ist, einen `aus'-String bekommt. Die Strings werden durch trennzeichen voneinander getrennt (der Default ist `,'), und es werden lediglich anzahl_bits der Bits verwendet (der Default ist 64).
|
| field(str,str1,str2,str3,...)
|
Gibt den Index von str in der Liste str1, str2, str3, . . . zurück. Gibt 0 zurück, wenn str nicht gefunden wurde. FIELD( ) ist das Gegenstück zu ELT( ).
|
| find_in_set(str,strliste)
|
Gibt einen Wert zwischen 1 und N zurück, wenn sich der String str in der aus N Substrings bestehenden Liste strliste befindet. Eine Stringliste ist ein String, der aus Substrings besteht, die durch Kommata voneinander getrennt sind. Gibt 0 zurück, wenn str nicht in strliste enthalten ist oder strliste der leere String ist. Gibt NULL zurück, wenn eines der beiden Argumente NULL ist. Diese Funktion arbeitet nicht richtig, wenn das erste Argument ein Komma enthält.
|
| floor(X)
|
Gibt den größten Integer-Wert zurück, der nicht größer als X ist.
|
| format(X,D)
|
Formatiert die Zahl X in einem Format wie `#,###,###.##', gerundet auf D Nachkommastellen. Wenn D 0 ist, hat das Ergebnis keine Nachkommastellen.
|
| from_days(N)
|
Gibt zu einer Tagesnummer N einen DATE-Wert zurück. Sollte nicht für Werte vor der Einführung des Gregorianischen Kalenders (1582) verwendet werden, da die dabei verlorengegangenen Tage die Funktion durcheinanderbringen.
|
| from_unixtime(unix_zeitstempel)
|
Gibt eine Darstellung des unix_zeitstempels im Format `YYYY-MM-DD HH:MM:SS' oder YYYYMMDDHHMMSS zurück, je nachdem, ob die Funktion in einem String- oder einem numerischen Kontext aufgerufen wird.
|
| from_unixtime(unix_zeitstempel,format)
|
Gibt eine String-Darstellung von unix_zeitstempel zurück, die entsprechend dem Format-String formatiert ist. format kann die gleichen Steuersequenzen enthalten, die auch bei der Funktion DATE_FORMAT( ) beschrieben sind.
|
| get_lock(str,timeout)
|
Versucht eine Sperre mit dem Namen str innerhalb von timeout Sekunden zu bekommen. Gibt 1 zurück, wenn die Sperre erworben werden konnte, 0, wenn dies nicht in der vorgesehenen Zeit gelang, und NULL, wenn ein Fehler auftritt.
|
| greatest(X,Y,...)
|
Gibt das größte der übergebenen Argumente zurück.
|
| hex(N)
|
Gibt eine String-Darstellung des hexadezimalen Werts von N zurück, wobei N eine BIGINT-Zahl ist. Dies entspricht CONV(N,10,16). Gibt NULL zurück, wenn N NULL ist.
|
| interval(N,N1,N2,N3,...)
|
Gibt 0 zurück, wenn N < N1, 1, wenn N < N2 und so weiter. Alle Argumente werden als Integer angesehen. Damit die Funktion korrekt funktioniert, muß N1 < N2 < N3 < . . . < Nn sein.
|
| hour(zeit)
|
Gibt die Stunde einer Zeitangabe im Bereich von 0 bis 23 zurück.
|
| if(ausdruck1,ausdruck2,ausdruck3)
|
Wenn ausdruck1 TRUE ist (ausdruck1 <> 0 und ausdruck1 <> NULL), dann gibt
IF() ausdruck2 zurück, ansonsten ausdruck3. IF() gibt je nach Kontext einen numerischen oder einen Stringwert zurück.
|
| ifnull(ausdruck1,ausdruck2)
|
Wenn ausdruck1 nicht NULL ist, gibt IFNULL() ausdruck1, ansonsten ausdruck2 zurück. IFNULL() gibt je nach Kontext einen numerischen oder einen Stringwert zurück.
|
| isnull(ausdruck)
|
Wenn ausdruck NULL ist, gibt ISNULL() 1 zurück; ansonsten 0.
|
| insert(str,pos,laenge,neuerstr)
|
Gibt den String str zurück. Der Teilstring, der an Position pos beginnt und laenge Zeichen lang ist, wird durch den String neuerstr ersetzt.
|
| instr(str,substr)
|
Gibt die Position des ersten Auftretens des Substrings substr im String str zurück.
|
| last_insert_id([ausdruck])
|
Gibt den letzten automatisch erzeugten Wert zurück, der in eine AUTO_INCREMENT-Spalte eingefügt wurde.
|
| lcase(str)
lower(str)
|
Gibt den String str zurück, bei dem alle Zeichen entsprechend der aktuellen Zeichensatz-Abbildung (der Default ist ISO-8859-1 Latin1) in Kleinbuchstaben umgewandelt wurden.
|
| least(X,Y,...)
|
Gibt bei zwei oder mehr Argumenten das kleinste der Argumente zurück.
|
| left(str,laenge)
|
Gibt die ersten (von links gesehen) laenge Zeichen des Strings str zurück.
|
| length(str)
octet_length(str)
char_length(str)
character_length(str)
|
Diese Funktionen geben die Länge des Strings str zurück.
|
| load_file(dateiname)
|
Liest die Datei und gibt deren Inhalt als String zurück. Die Datei muß auf dem Server liegen, der Benutzer muß den vollständigen Pfadnamen zur Datei angeben und die notwendigen Rechte haben.
|
| locate(substr,str)
position(substr IN str)
|
Gibt die Position des ersten Auftretens von substr in str zurück. Gibt 0 zurück, wenn substr nicht in str enthalten ist.
|
| locate(substr,str,pos)
|
Gibt die Position des ersten Auftretens von substring in str, beginnend bei Position pos, zurück oder 0, wenn substr nicht ab dieser Position in str enthalten ist.
|
| log(X)
|
Gibt den natürlichen Logarithmus von X zurück.
|
| log10(X)
|
Gibt den Logarithmus zur Basis 10 von X zurück.
|
| lpad(str,laenge,fuellstr)
|
Gibt den String str zurück, links aufgefüllt mit dem String fuellstr auf eine Länge von laenge Zeichen.
|
| ltrim(str)
|
Gibt den String str zurück, bei dem führende Leerzeichen entfernt wurden.
|
| make_set(bits,str1,str2, . . . )
|
Gibt eine Menge (einen String, der durch `,' getrennte Substrings enthält) zurück, die aus den Strings besteht, deren korrespondierende Bits in bits gesetzt sind. str1 gehört zu Bit 0, str2 zu Bit 1 usw. NULL-Strings in str1, str2, ... werden nicht an das Ergebnis angehängt.
|
| md5(string)
|
Berechnet eine MD5-Prüfsumme für den String. Der Wert wird als 32 Stellen lange Hexadezimalzahl zurückgegeben.
|
| min(ausdruck)
max(ausdruck)
|
Gibt den minimalen bzw. maximalen Wert von ausdruck zurück. MIN() und MAX() können Stringargumente verarbeiten; in diesem Fall geben sie den minimalen oder maximalen Stringwert zurück.
|
| minute(zeit)
|
Gibt die Minutenzahl der Uhrzeit im Bereich von 0 bis 59 zurück.
|
| mod(N,M)
|
% Modulo (wie der %-Operator in C); gibt den Rest der Division von N durch M zurück.
|
| month(datum)
|
Gibt den Monat eines Datumswerts im Bereich von 1 bis 12 zurück.
|
| monthname(datum)
|
Gibt den Namen des Monats eines Datumswerts zurück.
|
| now()
sysdate()
current_timestamp
|
Gibt das aktuelle Datum und die aktuelle Uhrzeit als Wert im Format `YYYY-MM-DD HH:MM:SS' oder YYYYMMDDHHMMSS zurück, abhängig davon, ob die Funktion in einem String- oder einem numerischen Kontext verwendet wird.
|
| nullif(ausdruck1,ausdruck2)
|
Gibt NULL zurück, wenn ausdruck1 = ausdruck2 wahr ist, ansonsten ausdruck1.
|
| oct(N)
|
Gibt eine String-Darstellung des Oktalwerts von N zurück, wobei N eine große Zahl ist. Dies entspricht CONV(N,10,8). Gibt NULL zurück, wenn N NULL ist.
|
| ord(str)
|
Wenn das am weitesten links stehende Zeichen des Strings str ein Multibyte-Zeichen ist, wird der Code des Multibyte-Zeichens durch Rückgabe des ASCII-Codewerts des Zeichens im Format
((erstes Byte des ASCII-Codes)*256+(zweites Byte des ASCII-Codes))[*256+drittes Byte des ASCII-Codes...]
zurückgegeben. Wenn das am weitesten links stehende Zeichen kein Multibyte-Zeichen ist, wird der gleiche Wert wie bei der Funktion ASCII( ) zurückgegeben.
|
| password(str)
|
Berechnet einen Paßwort-String aus dem unverschlüsselten Paßwort str. Dies ist die Funktion, die zur Verschlüsselung von MySQL-Paßwörtern dient, die zur Speicherung in der Password-Spalte der Tabelle mit den Benutzer-Zugriffsrechten verwendet werden.
|
| period_add(P,N)
|
Fügt der Periode P (im Format YYMM oder YYYYMM) N Monate hinzu und gibt einen Wert im Format YYYYMM zurück. Beachten Sie, daß das Periodenargument P kein Datumswert ist.
|
| period_diff(P1,P2)
|
Gibt die Anzahl der Monate zurück, die zwischen den Perioden P1 und P2 liegen. P1 und P2 sollten im Format YYMM oder YYYYMM vorliegen. Beachten Sie, daß die Periodenargumente P1 und P2 keine Datumswerte sind.
|
| pi()
|
Gibt den Wert von _ zurück.
|
| pow(X,Y)
power(X,Y)
|
Gibt den Wert von X zur Y-ten Potenz zurück.
|
| quarter(datum)
|
Gibt das Quartal des Datums im Bereich von 1 bis 4 zurück.
|
| radians(X)
|
Gibt das Argument X, konvertiert von Grad in Bogenmaß, zurück.
|
| rand()
rand(N)
|
Gibt eine zufällige Fließkommazahl im Bereich von 0 bis 1.0 zurück.
Wenn ein Integer-Argument N angegeben wird, wird dieses als Startwert verwendet.
|
| release_lock(str)
|
Gibt die Sperre namens str frei, die mit GET_LOCK( ) erworben wurde. Gibt 1 zurück, wenn die Sperre freigegeben wurde, und 0, wenn die Sperre nicht von diesem Thread erworben wurde (wodurch die Sperre auch nicht freigegeben wird), und NULL, wenn die angegebene Sperre gar nicht existiert.
|
| repeat(str,anzahl)
|
Gibt einen String zurück, der aus dem anzahl-mal wiederholten String str besteht. Wenn anzahl kleiner oder gleich 0 ist, wird ein leerer String zurückgegeben, wenn str oder anzahl NULL sind, wird NULL zurückgegeben.
|
| replace(str,quellstring,zielstring)
|
Gibt den String str zurück, bei dem alle Vorkommen von quellstring durch zielstring ersetzt wurden.
|
| reverse(str)
|
Gibt den String str in umgedrehter Zeichenreihenfolge zurück.
|
| right(str,zehn)
|
Gibt die zehn am weitesten rechts stehenden Zeichen des Strings str zurück.
|
| round(X)
|
Gibt das Argument X auf die nächste Ganzzahl gerundet zurück.
|
| round(X,D)
|
Gibt das Argument X, gerundet auf eine Zahl mit D Nachkommastellen, zurück. Wenn D 0 ist, hat das Ergebnis keine Nachkommastellen.
|
| rpad(str,laenge,fuellstring)
|
Gibt den String str zurück, rechts aufgefüllt mit dem String fuellstr auf eine Länge von laenge Zeichen.
|
| rtrim(str)
|
Gibt den String str zurück, bei dem am Ende stehende Leerzeichen entfernt wurden.
|
| sec_to_time(Sekunden)
|
Gibt das Argument, konvertiert in Stunden, Minuten und Sekunden, als Wert im Format `HH:MM:SS' oder HHMMSS zurück, abhängig davon, ob die Funktion in einem String- oder numerischen Kontext verwendet wird.
|
| second(zeit)
|
Gibt die Anzahl der Sekunden im Zeitwert im Bereich von 0 bis 59 zurück.
|
| sign(X)
|
Gibt das Vorzeichen des Arguments als -1, 0 oder 1 zurück, je nachdem, ob X negativ, null oder positiv ist.
|
| sin(X)
|
Gibt den Sinus von X zurück, wobei X im Bogenmaß angegeben wird.
|
| soundex(str)
|
Gibt den soundex-String von str zurück. Zwei Strings, die »etwa gleich klingen«, sollten identische soundex-Strings haben.
Ein »Standard«-soundex-String ist vier Zeichen lang, aber die SOUNDEX()-Funktion gibt einen String beliebiger Länge zurück. Die Funktion SUBSTRING( ) kann dazu verwendet werden, um einen »Standard«-soundex-String zu bekommen. Alle nicht-alphanumerischen Zeichen im Eingabestring werden ignoriert. Alle internationalen alphabetischen Zeichen außerhalb des Bereichs A-Z werden als Vokale behandelt.
|
| space(N)
|
Gibt einen aus N Leerzeichen bestehenden String zurück.
|
| sqrt(X)
|
Gibt die nicht-negative Quadratwurzel von X zurück.
|
| std(ausdruck)
stddev(ausdruck)
|
Gibt die Standardabweichung von ausdruck zurück. Die STDDEV( )-Form dieser Funktion dient der Kompatibilität mit Oracle.
|
| strcmp(ausdruck1,ausdruck2)
|
STRCMP() gibt 0 zurück, wenn die Strings gleich sind, -1, wenn das erste Argument im Hinblick auf die aktuelle Sortierreihenfolge kleiner als das zweite Argument ist, und sonst 1.
|
| substring(str,pos,laenge)
substring(str FROM pos FOR laenge)
mid(str,pos,laenge)
|
Gibt einen laenge Zeichen langen Substring aus dem String str zurück, beginnend an der Position pos. Die Variante mit FROM ist ANSI SQL92-Syntax.
|
| substring_index (str,trennzeichen,anzahl)
|
Gibt den Substring aus dem String str zurück, der auf anzahl Vorkommen des Trennzeichens trennzeichen folgt. Wenn anzahl positiv ist, wird alles links vom letzten Trennzeichen (von links gesehen) zurückgegeben. Wenn count negativ ist, wird alles rechts vom letzten Trennzeichen (von rechts gesehen) zurückgegeben.
|
| substring(str,pos)
substring(str FROM pos)
|
Gibt den Substring aus dem String str zurück, der an der Position pos beginnt.
|
| sum(ausdruck)
|
Gibt die Summe von ausdruck zurück. Beachten Sie, daß NULL zurückgegeben wird, wenn die Ergebnismenge keine Zeilen enthält.
|
| tan(X)
|
Gibt den Tangens von X zurück, wobei X im Bogenmaß angegeben wird.
|
| time_format (zeit,format)
|
Entspricht DATE_FORMAT(), der Format-String darf aber nur die Formatangaben enthalten, die sich auf Stunden, Minuten oder Sekunden beziehen; alle anderen Angaben führen zu einem NULL-Wert oder zu 0.
|
| time_to_sec(zeit)
|
Gibt das Zeit-Argument in Sekunden umgewandelt zurück.
|
| to_days(datum)
|
Gibt die Nummer des Tages (die Anzahl der Tage seit dem Jahr 0) zu einem Datum zurück.
|
| trim([[BOTH | LEADING | TRAILING] [entfstr] FROM] str)
|
Gibt den String str zurück, bei dem alle entfstr-Präfixe und -Suffixe entfernt wurden. Wenn weder BOTH, LEADING noch TRAILING angegeben wurden, wird BOTH angenommen. Wenn entfstr nicht angegeben wird, werden Leerzeichen entfernt.
|
| truncate(X,D)
|
Gibt die Zahl X, gekürzt auf D Nachkommastellen, zurück. Wenn D 0 ist, hat das Ergebnis keine Nachkommastellen.
|
| ucase(str)
upper(str)
|
Gibt den String str zurück, in dem alle Zeichen entsprechend der aktuellen Zeichensatz-Tabelle in Großbuchstaben konvertiert wurden (der Default ist ISO-8859-1 Latin1).
|
| unix_timestamp()
unix_timestamp(datum)
|
Wenn diese Funktion ohne Argument aufgerufen wird, wird ein Unix-Zeitstempel (Sekunden seit `1970-01-01 00:00:00' GMT) zurückgegeben. Wenn UNIX_TIMESTAMP( ) mit einem Datums-Argument aufgerufen wird, wird der Wert des Arguments als Sekunden seit `1970-01-01 00:00:00' GMT zurückgegeben.
|
| user()
system_user()
session_user()
|
Diese Funktionen geben den aktuellen MySQL-Benutzernamen zurück.
|
| version()
|
Gibt einen String zurück, der die Version des MySQL-Servers angibt.
|
| week(datum)
week(datum,erster)
|
Wird ein Argument übergeben, wird die Woche des Datums im Bereich von 0 bis 53 zurückgegeben (in manchen Jahren ist eine Woche 53 möglich). Bei der zweiargumentigen Form von WEEK( ) kann der Benutzer angeben, ob die Woche mit Sonntag (0) oder Montag (1) beginnt.
|
| weekday(datum)
|
Gibt den Wochentag des Datums zurück (0 = Montag, 1 = Dienstag, . . . 6 = Sonntag).
|
| year(datum)
|
Gibt das Jahr des Datums im Bereich von 1000 bis 9999 zurück.
|
| yearweek(datum)
yearweek(datum,erste)
|
Gibt das Jahr und die Woche des Datums zurück. Das zweite Argument funktioniert genauso wie das zweite Argument von WEEK( ). Beachten Sie, daß sich das Jahr bei der ersten und letzten Woche des Jahres vom Jahr im Datumsargument unterscheiden kann.
|
In Oracle unterstützte SQL-Funktionen
Tabelle 4-9 enthält eine alphabetische Liste der Oracle-spezifischen SQL-Funktionen.
| abs(zahl)
|
Gibt den absoluten Wert von zahl zurück.
|
| acos(zahl)
|
Gibt den Arkus Kosinus von zahl im Bereich -1 bis 1 zurück. Das Ergebnis liegt im Bereich von 0 bis und wird im Bogenmaß angegeben.
|
| add_months(datum, int)
|
Gibt das Datum datum plus int Monate zurück.
|
| ascii(string)
|
Gibt den Dezimalwert des ersten Zeichens von string im Zeichensatz der Datenbank zurück; gibt einen ASCII-Wert zurück, wenn der Datenbank-Zeichensatz 7-Bit-ASCII ist; gibt EBCDIC-Werte zurück, wenn der Datenbank-Zeichensatz EBCDIC Code Page 500 ist.
|
| asin(zahl)
|
Gibt den Arkus Sinus von zahl im Bereich -1 bis 1 zurück. Das Ergebnis liegt im Bereich von - /2 bis /2 und wird im Bogenmaß angegeben.
|
| atan(zahl)
|
Gibt den Arkus Tangens von zahl zurück. Das Ergebnis liegt im Bereich von - /2 bis /2 und wird im Bogenmaß angegeben.
|
| atan2(zahl,zhl)
|
Gibt den Arkus Tangens von zahl und zhl zurück. Die Werte von zahl und zhl unterliegen keinerlei Einschränkungen, die Ergebnisse liegen im Bereich von - bis und werden im Bogenmaß angegeben.
|
| avg([DISTINCT] ausdruck) over (analytika)
|
Gibt den Durchschnittswert von ausdruck zurück. Kann als Aggregat- oder analytische Funktion verwendet werden (analytische Funktionen gehen über den Rahmen dieses Buches hinaus).
|
| bfilename(`verzeichnis', `dateiname')
|
Gibt einen BFILE-Locator zurück, der zu einem physikalischen LOB-Binär-Dateinamen im verzeichnis auf dem Dateisystem des Servers gehört.
|
| ceil(zahl)
|
Gibt die kleinste Integer-Zahl zurück, die größer oder gleich zahl ist.
|
| chartorowid(char)
|
Konvertiert einen Wert von einem Zeichen-Datentyp (CHAR oder VARCHAR2) in den Datentyp ROWID.
|
| chr(zahl [USING NCHAR_CS])
|
Gibt das Zeichen zurück, das das binäre Äquivalent zu zahl ist, entweder im Datenbank-Zeichensatz (wenn USING NCHAR_CS nicht verwendet wird) oder im nationalen Zeichensatz (wenn USING NCHAR_CS verwendet wird).
|
| concat(string1, string2)
|
Gibt string1 verkettet mit string2 zurück. Diese Funktion ist äquivalent mit dem Verkettungsoperator (||).
|
| convert(zeichen_wert, ziel_zeichensatz, quell_zeichensatz)
|
Konvertiert einen Zeichenstring von einem Zeichensatz in einen anderen; gibt den zeichen_wert im ziel_zeichensatz nach dem Konvertieren von zeichen_wert aus dem quell_zeichensatz zurück.
|
| corr(ausdruck1, ausdruck2) over (analytika)
|
Gibt den Korrelationskoeffizient einer Menge von numerierten Paaren (ausdrücke 1 und 2) zurück. Kann als Aggregat- oder analytische Funktion verwendet werden (analytische Funktionen gehen über den Rahmen dieses Buches hinaus).
|
| cos(zahl)
|
Gibt den Kosinus von zahl als im Bogenmaß angegebenen Winkel an.
|
| cosh(zahl)
|
Gibt den hyperbolischen Kosinus von zahl zurück.
|
| count
|
Gibt die Anzahl der Spalten in der Abfrage zurück; im oben stehenden Abschnitt zu COUNT finden Sie weitere Informationen.
|
| covar_pop(ausdruck1, ausdruck2) over (analytika)
|
Gibt die Populationskovarianz einer Menge von numerierten Paaren (ausdrücke 1 und 2) zurück. Kann als Aggregat- oder analytische Funktion verwendet werden (analytische Funktionen gehen über den Rahmen dieses Buches hinaus).
|
| covar_samp(ausdruck1, ausdruck2) over(analytika)
|
Gibt die Sampling-Kovarianz einer Menge von numerierten Paaren (ausdrücke 1 und 2) zurück. Kann als Aggregat- oder analytische Funktion verwendet werden (analytische Funktionen gehen über den Rahmen dieses Buches hinaus).
|
| cume_dist( ) ( [OVER (abfrage)] ORDER BY...)
|
Die kumulative Verteilungsfunktion berechnet die relative Position eines bestimmten Wertes in einer Gruppe von Werten.
|
| decode(ausdruck -suchwert , ergebnis [,. n] [,default])
|
Vergleicht ausdruck mit dem Suchwert; wenn ausdruck gleich dem gesuchten Wert ist, wird das Ergebnis zurückgegeben. Wenn es keinen Treffer gibt, gibt DECODE den Default zurück oder NULL, wenn kein solcher angegeben wird. Nähere Details finden Sie in der Oracle-Dokumentation.
|
| dense_rank( ) ( [OVER (abfrage)] ORDER BY...)
|
Berechnet den Rang jeder von einer Abfrage zurückgegebenen Zeile hinsichtlich der anderen Zeilen, basierend auf den Werten in der ORDER_BY-Klausel.
|
| deref(ausdruck)
|
Gibt die Objektreferenz von ausdruck zurück, wobei ausdruck ein REF auf ein Objekt zurückgeben muß.
|
| dump(ausdruck [,ausgabeformat [, startposition [,laenge]]] )
|
Gibt einen VARCHAR2-Wert zurück, der einen Datentyp-Code, die Länge in Bytes und die interne Darstellung von ausdruck enthält. Der resultierende Wert wird im Format ausgabeformat zurückgegeben.
|
| empth[B | C]lob( )
|
Gibt einen leeren LOB-Locator zurück, der zum Initialisieren einer LOB-Variablen verwendet werden kann. Kann auch zum Initialisieren einer LOB-Spalte oder eines LOB-Attributs verwendet werden, die bzw. das zum Leeren in einer INSERT- oder UPDATE-Anweisung dient.
|
| exp(zahl)
|
Gibt E zur zahl-ten Potenz erhoben zurück, wobei E = 2,71828183.
|
| first_value( ausdruck) over (analytika)
|
Gibt den ersten Wert in einer geordneten Menge von Werten zurück.
|
| floor(zahl)
|
Gibt die größte Integer-Zahl zurück, die kleiner oder gleich zahl ist.
|
| greatest(ausdruck [,...n])
|
Gibt den größten Wert in einer Liste von ausdrücken zurück. Alle ausdrücke nach dem ersten werden vor dem Vergleich implizit in den Datentyp des ersten ausdrucks konvertiert.
|
| grouping(ausdruck)
|
Unterscheidet den Grund für eine Null durch eine Super-Aggregation in der GROUP BY-Erweiterung von einem tatsächlichen Null-Wert.
|
| hextoraw(string)
|
Konvertiert string, der hexadezimale Ziffern enthält, in einen rohen Wert.
|
| initcap(string)
|
Gibt string zurück, wobei der erste Buchstabe jedes Worts in Großbuchstaben und alle weiteren Buchstaben in Kleinbuchstaben konvertiert werden.
|
| instr(string1, string2, startpos, auftreten)
|
Durchsucht einen Zeichenstring nach einem anderen Zeichenstring. string1 wird ab Position startpos (einem Integer-Wert) nach dem auftreten-ten Auftreten von string2 durchsucht. Die Position des ersten Auftretens dieses Zeichens in string1 wird zurückgegeben.
|
| instrb(string1, string2, [startpos], auftreten]])
|
Wie INSTR, startpos und der Rückgabewert werden aber in Bytes anstelle von Zeichen ausgegeben.
|
| lag(ausdruck [,offset][,default]) over(analytika)
|
Ermöglicht den Zugriff auf mehr als eine Zeile einer Tabelle zur gleichen Zeit, ohne einen Self-Join notwendig zu machen; nähere Informationen finden Sie in der Hersteller-Dokumentation.
|
| last_day(datum)
|
Gibt das Datum des letzten Tages in dem Monat zurück, der datum enthält.
|
| last_value(ausdruck) over (analytika)
|
Gibt den letzten Wert in einer geordneten Menge von Werten zurück; nähere Informationen finden Sie in der Hersteller-Dokumentation.
|
| lead(ausdruck [,offset][,default]) over(analytika)
|
Ermöglicht den Zugriff auf mehr als eine Zeile einer Tabelle zur gleichen Zeit, ohne einen Self-Join notwendig zu machen. Analytische Funktionen gehen über den Umfang dieses Buches hinaus.
|
| least(ausdruck [,...n])
|
Gibt den kleinsten Wert aus der Liste von ausdruecken zurück.
|
| length(string)
|
Gibt die Integer-Länge von string oder null zurück, wenn string null ist.
|
| lengthb(string)
|
Gibt die Länge von string in Bytes zurück, ansonsten verhält sich diese Funktion wie LENGTH.
|
| ln(zahl)
|
Gibt den natürlichen Logarithmus von zahl zurück, wobei zahl größer 0 sein muß.
|
| log(basis_zahl, zahl)
|
Gibt den Logarithmus von jeder basis_zahl von zahl zurück.
|
| lower(string)
|
Gibt string in dem gleichen Datentyp zurück, in dem er übergeben wurde, aber mit allen Zeichen in Kleinbuchstaben umgewandelt.
|
| lpad(string1, zahl [,string2])
|
Gibt string1 zurück, links aufgefüllt auf eine Länge von zahl unter Verwendung von Zeichen in string2. Der Default für string2 ist ein einzelnes Leerzeichen.
|
| ltrim(string[, menge])
|
Entfernt alle Zeichen in menge am linken Rand von string. Der Default für menge ist ein einzelnes Leerzeichen.
|
| make_ref({tabellenname | view_name} , schlüssel [,...n])
|
Erzeugt eine Referenz (REF) auf eine Zeile in einem Objekt-View oder einer Objekt-Tabelle, deren Objekt-Identifier auf dem Primärschlüssel basiert.
|
| max([DISTINCT] ausdruck) over (analytika)
|
Gibt den Maximalwert von ausdruck zurück. Kann als Aggregat- oder analytische Funktion verwendet werden (analytische Funktionen gehen über den Rahmen dieses Buches hinaus).
|
| min([DISTINCT] ausdruck) over (analytika)
|
Gibt den Minimalwert von ausdruck zurück. Kann als Aggregat- oder analytische Funktion verwendet werden (analytische Funktionen gehen über den Rahmen dieses Buches hinaus).
|
| mod(dividend, divisor)
|
Gibt den Rest der Division von dividend durch divisor zurück; gibt den dividend zurück, wenn divisor 0 ist.
|
| months_between (datum1, datum2)
|
Gibt die Anzahl der Monate zwischen den Daten datum1 und datum2 zurück. Wenn datum1 nach datum2 liegt, ist das Ergebnis positiv, ansonsten negativ.
|
| new_time(datum, zeitzone1, zeitzone2)
|
Gibt das Datum und die Uhrzeit in zeitzone2 zurück, wenn Datum und Uhrzeit in zeitzone1 datum sind. Die Zeitzonen können mit folgenden Strings angegeben werden:
-
AST, ADT: Atlantic Standard oder Daylight Time
-
BST, BDT: Bering Standard oder Daylight Time
-
CST, CDT: Central Standard oder Daylight Time
-
EST, EDT: Eastern Standard oder Daylight Time
-
GMT: Greenwich Mean Time
-
HST, HDT: Alaska-Hawaii Standard Time oder Daylight Time
-
MST, MDT: Mountain Standard oder Daylight Time
-
NST: Newfoundland Standard Time
-
PST, PDT: Pacific Standard oder Daylight Time
-
YST, YDT: Yukon Standard oder Daylight Time
|
| next_day(datum, string)
|
Gibt das Datum des ersten durch string angegebenen Wochentages zurück, das nach datum liegt. Das Argument string muß entweder der vollständige Name oder die Abkürzung eines Tages in der Woche in der Datumssprache der Sitzung sein.
|
| nls_charset_decl_len(bytezahl, zsid)
|
Gibt die Deklarationsbreite (bytezahl) einer NCHAR-Spalte unter Verwendung der Zeichensatz-ID (zsid) der Spalte zurück.
|
| nls_charset_id(text)
|
Gibt die NLS-Zeichensatz-ID zurück, die zu text gehört.
|
| nls_charset_name(zahl)
|
Gibt den VARCHAR2-Namen für die NLS-Zeichensatz-ID zurück, die zur ID zahl gehört.
|
| nls_initcap(string [,`nlsparameter'])
|
Gibt string so umformatiert zurück, daß der erste Buchstabe jedes Wortes in Großbuchstaben und alle anderen Buchstaben in Kleinbuchstaben erscheinen. Mit nlsparameter können spezielle linguistische Sortierfunktionen vorgenommen werden.
|
| nls_lower(string, [,`nlsparameter'])
|
Gibt string mit allen Buchstaben in Kleinbuchstaben zurück. Mit nlsparameter können spezielle linguistische Sortierfunktionen vorgenommen werden.
|
| nlssort(string [,`nlsparameter'])
|
Gibt den Byte-String zurück, der verwendet wird, um string zu sortieren. Mit nlsparameter können spezielle linguistische Sortierfunktionen ausgeführt werden.
|
| nls_upper string [,`nlsparameter'])
|
Gibt string mit allen Buchstaben in Großbuchstaben zurück. Mit nlsparameter können spezielle linguistische Sortierfunktionen ausgeführt werden.
|
| ntile(ausdruck) over ( abfrage_partition ORDER BY...)
|
Teilt eine geordnete Datenmenge in Buckets mit den Nummern 1 bis ausdruck auf und weist jeder Zeile die entsprechende Bucket-Nummer zu.
|
| numtodsinterval (zahl, `string')
|
Konvertiert zahl in ein INTERVAL DAY TO SECOND-Literal, wobei zahl eine Zahl oder ein Ausdruck ist, der zu einer Zahl aufgelöst werden kann, etwa eine Spalte mit einem numerischen Datentyp.
|
| numtoyminterval (zahl, `string')
|
Konvertiert zahl in ein INTERVAL DAY TO MONTH-Literal, wobei zahl eine Zahl oder ein Ausdruck ist, der zu einer Zahl aufgelöst werden kann, etwa eine Spalte mit einem numerischen Datentyp.
|
| nvl(ausdruck1, ausdruck2)
|
Wenn ausdruck1 null ist, wird ausdruck2 anstelle des Null-Wertes zurückgegeben, ansonsten ausdruck1. Die Ausdrücke können beliebige Datentypen haben.
|
| nvl2(ausdruck1, ausdruck2, ausdruck3)
|
Ähnlich wie NLV, aber wenn ausdruck1 nicht null ist, wird ausdruck2 zurückgegeben, ansonsten ausdruck3. Die Ausdrücke können beliebige Datentypen mit Ausnahme von LONG haben.
|
| percent_rank( ) over ( abfrage_partition ORDER BY...)
|
Ähnlich wie die analytische Funktion CUME_DIST, gibt aber nicht die kumulative Verteilung, sondern den Prozent-Rang einer Zeile im Verhältnis zu den anderen Zeilen in der Ergebnismenge zurück. Nähere Informationen finden Sie in der Hersteller-Dokumentation.
|
| power(zahl, potenz)
|
Gibt zahl zur potenz-ten Potenz erhoben zurück. Die Basis und der Exponent können beliebige Zahlen sein, aber wenn zahl negativ ist, muß potenz ein Integer-Wert sein.
|
| rank (wert_ausdruck) over ( abfrage_partition ORDER BY ...)
|
Berechnet den Rang jeder von einer Abfrage zurückgegebenen Zeile im Verhältnis zu den anderen von dieser Abfrage zurückgegebenen Zeilen, basierend auf den Werten im wert_ausdruck der ORDER BY-Klausel.
|
| ratio_to_report (wert_ausdruecke) over ( abfrage_partition)
|
Berechnet das Verhältnis eines Wertes zur Summe einer Menge von Werten. Wenn wert_ausdruecke null ist, wird null zurückgegeben.
|
| rawtohex(roh)
|
Konvertiert einen rohen Wert in einen String, der sein hexadezimales Äquivalent enthält.
|
| ref(tabellen_alias)
|
REF erwartet einen Tabellen-Alias, der zu einer Zeile aus einer Tabelle oder einem View gehört. Es wird ein spezieller Referenzwert für die Objekt-Instanz zurückgegeben, die an die Variable oder Zeile gebunden ist.
|
| reftohex(ausdruck)
|
Konvertiert das Argument ausdruck in einen Zeichenwert, der das hexadezimale Äquivalent enthält.
|
| regr_ xxx(ausdruck1, ausdruck2) over (analytika)
|
Funktionen zur linearen Regression passen eine Regressionsgerade mittels der Methode der kleinsten Quadrate in eine Menge von Zahlenpaaren ein, wobei ausdruck2 die abhängige und ausdruck2 die unabhängige Variable ist. Es gibt die folgenden Funktionen zur linearen Regression:
-
REGR_SLOPE: gibt die Steigung der Linie zurück
-
REGR_INTERCEPT: gibt den Y-Abschnitt (Intercept) der Regressionsgeraden zurück
-
REGR_COUNT: gibt die Anzahl der von null verschiedenen Paare, die auf die Regressionsgerade passen, zurück
-
REGR_R2: gibt den Korrelationskoeffi-zienten der Regression zurück
-
REGR_AVGX: gibt den Durchschnittswert der unabhängigen Variable zurück
-
REGR_AVGY: gibt den Durchschnittswert der abhängigen Variable zurück
-
REGR_SXX: berechnet
REGR_COUNT(ausdr1, ausdr2) * VAR_POP(ausdr2)
-
REGR_SYY: berechnet
REGR_COUNT(ausdr1, ausdr2) * VAR_POP(ausdr1)
-
REGR_SXY: berechnet
REGR_COUNT(ausdr1, ausdr2) * COVAR_POP(ausdr1, ausdr2)
Diese können als Aggregat- oder als analytische Funktionen verwendet werden.
|
| replace(string, such_string [,ersatz_string])
|
Ersetzt jedes Auftreten von such_string in string durch ersatz_string und gibt das Ergebnis zurück.
|
| round (zahl, stellen)
|
Rundet zahl auf stellen Nachkommastellen. Wenn stellen weggelassen wird, wird zahl auf eine ganze Zahl gerundet. Beachten Sie, daß stellen, ein Integer-Wert, negativ sein kann, um Stellen links vom Dezimalkomma zu runden.
|
| round (datum[, format])
|
Gibt das datum gerundet auf die durch das Formatmodell format angegebene Einheit zurück. Wenn format weggelassen wird, wird date auf den nächsten Tag gerundet.
|
| row_number ( ) over ( abfrage_partition ORDER BY ... )
|
Weist jeder Zeile einer geordneten Folge von Zeilen, die durch die ORDER_BY-Klausel angegeben wird, eine eindeutige Nummer zu, beginnend bei 1.
|
| rowidtochar(rowid)
|
Konvertiert einen rowid-Wert in einen VARCHAR2--Datentyp, der 18 Zeichen lang ist.
|
| rpad(string1, zahl [, string2])
|
Gibt string1 zurück, rechts mit dem Wert von string2, der sooft wie nötig wiederholt wird, aufgefüllt auf eine Länge von zahl. Der Default von string2 ist ein einzelnes Leerzeichen.
|
| rtrim(string[,menge])
|
Gibt string zurück, wobei alle rechts stehenden Zeichen, die sich in menge befinden, entfernt werden; der Default für menge ist ein einzelnes Leerzeichen.
|
| seddev_samp(ausdruck) over (analytika)
|
Berechnet die kumulative Sample-Standardabweichung und gibt die Quadratwurzel der Sample-Varianz zurück.
|
| sign(zahl)
|
Wenn zahl < 0, wird -1 zurückgegeben. Wenn zahl = 0, wird 0 zurückgegeben. Wenn zahl > 0, wird 1 zurückgegeben.
|
| sin(zahl)
|
Gibt den Sinus von zahl als Winkel im Bogenmaß zurück.
|
| sinh(zahl)
|
Gibt den hyperbolischen Sinus von zahl zurück.
|
| soundex(string)
|
Gibt einen Zeichenstring zurück, der die phonetische Darstellung von string enthält. Mit dieser Funktion können Wörter, die unterschiedlich geschrieben werden, aber im Englischen gleich klingen, miteinander verglichen werden.
|
| sqrt(zahl)
|
Gibt die Quadratwurzel von zahl, eine nicht-negative Zahl, zurück.
|
| stddev( [DISTINCT] ausdruck) over (analytika)
|
Gibt die Sample-Standardabweichung einer in ausdruck angegebenen Menge von Zahlen zurück.
|
| stdev_pop(ausdruck) over (analytika)
|
Berechnet die Populations-Standardabweichung und gibt die Quadratwurzel der Populations-Varianz zurück.
|
| substr(extraktions_string [FROM start_position] [FOR laenge])
|
Informationen hierzu finden Sie im Abschnitt zu SUBSTR weiter oben.
|
| substrb(extraktions_string [FROM start_position] [FOR laenge])
|
SUBSTRB macht das gleiche wie SUBSTR, die Argumente start_position und laenge werden aber in Bytes angegeben und nicht in Zeichen.
|
| sum([DISTINCT] ausdruck) over (analytika)
|
Gibt die Summe der Werte von ausdruck zurück; Näheres zu Analytika und der OVER-Klausel finden Sie in der Hersteller-Dokumentation.
|
| sys_context (`namensraum',`attribut' [,laenge])
|
Gibt den Wert von attribut im Kontext des namensraums zurück; kann sowohl in SQL- als auch in PL/SQL-Anweisungen verwendet werden.
|
| sys_guid( )
|
Erzeugt einen global eindeutigen Bezeichner (ein 16 Byte langer RAW-Wert) und gibt diesen zurück.
|
| sysdate
|
Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück; benötigt keine Argumente.
|
| tan(zahl)
|
Gibt den Tangens von zahl als Winkel im Bogenmaß zurück.
|
| tanh(zahl)
|
Gibt den hyperbolischen Tangens von zahl zurück.
|
| to_char (datum [, format [, `nls_parameter']])
|
Konvertiert datum in einen VARCHAR2-Wert im durch das Datumsformat format angegebenen Format. Wenn format weggelassen wird, wird datum in das voreingestellte Datumsformat konvertiert. Mit dem Parameter nls_parameter haben Sie noch genauere Kontrolle über die Formatierung.
|
| to_char (zahl [, format [, `nls_parameter']])
|
Konvertiert zahl in einen VARCHAR2-Wert im durch das Zahlenformat format angegebenen Format. Wenn format weggelassen wird, wird zahl in das voreingestellte Zahlenformat konvertiert. Mit dem Parameter nls_parameter haben Sie noch genauere Kontrolle über die Formatierung.
|
| to_date(string [, format [, `nls_parameter']])
|
Konvertiert string (in CHAR oder VARCHAR2) in einen DATE-Datentyp. Mit dem Parameter nls_parameter haben Sie noch genauere Kontrolle über die Formatierung.
|
| to_lob(long_spalte)
|
Kann nur in LONG- oder LONG RAW-Ausdrücken verwendet werden. Konvertiert LONG- oder LONG RAW-Werte in der Spalte long_spalte in LOB-Werte. Diese Funktion kann nur in der SELECT-Liste einer Unterabfrage in einer INSERT-Anweisung verwendet werden.
|
| to_multi_byte(string)
|
Gibt string zurück, wobei alle Single-Byte-Zeichen in die entsprechenden Multi-Byte-Zeichen konvertiert worden sind.
|
| to_number(string [, format [,`nls_parameter']])
|
Konvertiert einen numerischen string (vom Datentyp CHAR oder VARCHAR2) in einen Wert des Datentyps NUMBER unter Verwendung des optional mit format angegebenen Formats. Die Option nls_parameter ermöglicht eine genauere Kontrolle über die Formatierung.
|
| to_single_byte(string)
|
Gibt string zurück, wobei alle Multi-Byte- Zeichen in die entsprechenden Single-Byte-Zeichen konvertiert werden.
|
| translate(`zeichen_wert', `quell_text', `ziel_text')
|
Gibt zeichen_wert zurück, wobei alle Vorkommen jedes Zeichens in quell_text durch die entsprechenden Zeichen in ziel_text ersetzt werden; Näheres dazu im Abschnitt »CONVERT und TRANSLATE« weiter oben in diesem Kapitel.
|
| translate (text USING [CHAR_CS | NCHAR_CS] )
|
Konvertiert text in den Zeichensatz, der für Konvertierungen zwischen dem Datenbank-Zeichensatz oder dem nationalen Zeichensatz festgelegt ist.
|
| trim({[LEADING | TRAILING | BOTH] zeichen | zeichen }
FROM quelle} )
|
Führende Zeichen oder Zeichen am Ende (oder beide) können aus einem Zeichenstring entfernt werden.
|
| trunc (basis [, zahl])
|
Gibt basis verkürzt auf zahl Dezimalstellen zurück. Wenn zahl weggelassen wird, wird basis auf 0 Nachkommastellen verkürzt. zahl kann negativ sein, um zahl Stellen links vom Komma zu Nullen zu machen.
|
| trunc (datum [, format])
|
Gibt das Datum datum zurück, wobei alle Daten auf die in format angegebene Einheit verkürzt werden. Wenn format weggelassen wird, wird datum auf den nächsten vollen Tag verkürzt.
|
| uid
|
Gibt einen Integer-Wert zurück, der den eingeloggten Sitzungsbenutzer eindeutig identifiziert. Die Funktion hat keine Parameter.
|
| upper(string)
|
Gibt string mit allen Buchstaben in Großbuchstaben konvertiert zurück.
|
| user
|
Gibt den Namen des eingeloggten Sitzungsbenutzers als VARCHAR2 zurück.
|
| userenv(option)
|
Gibt Informationen über die aktuelle Sitzung als VARCHAR2 zurück.
|
| value(tabellen_alias)
|
Erwartet einen Tabellen-Alias, der mit einer Zeile in einer Objekt-Tabelle verknüpft ist, und gibt Objekt-Instanzen zurück, die in der Objekt-Tabelle gespeichert sind.
|
| var_pop(ausdruck) over (analytika)
|
Gibt die Populations-Varianz einer Menge von Zahlen zurück, nachdem die Null-Werte in der Menge ausdruck entfernt wurden. Analytische Funktionen werden in der Hersteller-Dokumentation behandelt.
|
| var_samp(ausdruck) over (analytika)
|
Gibt die Sample-Varianz einer Menge von Zahlen zurück, nachdem die Null-Werte in der Menge ausdruck entfernt wurden. Analytische Funktionen werden in der Hersteller-Dokumentation behandelt.
|
| variance([DISTINCT] ausdruck) over (analytika)
|
Gibt die Varianz von ausdruck zurück, die folgendermaßen berechnet wird:
-
0, wenn ausdruck nur eine Zeile enthält
-
VAR_SAMP, wenn ausdruck mehr als eine Zeile enthält
|
| vsize(ausdruck)
|
Gibt die Anzahl der Bytes in der internen Darstellung von ausdruck zurück. Wenn ausdruck null ist, wird auch null zurückgegeben.
|
Unterstützte Funktionen in PostgreSQL
Tabelle 4-10 nennt die PostgreSQL-spezifischen Funktionen.
| abstime(timestamp)
|
Konvertiert zu abstime
|
| abs(float8)
|
Gibt den absoluten Wert zurück
|
| acos(float8)
|
Gibt den Arkus Kosinus zurück
|
| age(timestamp)
|
Erhält Monate und Jahre
|
| age(timestamp,
timestamp)
|
Erhält Monate und Jahre
|
| area(object)
|
Gibt den Bereich des Elements zurück
|
| asin(float8)
|
Gibt den Arkus Kosinus zurück
|
| atan(float8)
|
Gibt den Arkus Tangens zurück
|
| atan2(float8,float8)
|
Gibt den Arkus Tangens zurück
|
| box(box,box)
|
Gibt die Schnittmengen-Box zurück
|
| box(circle)
|
Konvertiert den Kreis in eine Box
|
| box(point,point)
|
Konvertiert Punkte in eine Box
|
| box(polygon)
|
Konvertiert ein Polygon in eine Box
|
| broadcast(cidr)
|
Erzeugt die Broadcast-Adresse als Text
|
| broadcast(inet)
|
Erzeugt die Broadcast-Adresse als Text
|
| CASE WHEN ausdruck THEN ausdruck [...] ELSE ausdruck END
|
Gibt den Ausdruck der ersten wahren WHEN-Klausel zurück
|
| cbrt(float8)
|
Gibt die Kubikwurzel zurück
|
| center(object)
|
Gibt den Mittelpunkt des Elements zurück
|
| char(text)
|
Konvertiert Text in den Datentyp char
|
| char(varchar)
|
Konvertiert varchar in char
|
| char_length(string)
|
Gibt die Länge des Strings zurück
|
| character_length(string)
|
Gibt die Länge des Strings zurück
|
| circle(box)
|
Konvertiert die Box in einen Kreis
|
| circle(point,float8)
|
Konvertiert den Punkt in einen Kreis
|
| COALESCE(list)
|
Gibt den ersten von NULL verschiedenen Wert in der Liste zurück
|
| cos(float8)
|
Gibt den Kosinus zurück
|
| cot(float8)
|
Gibt den Kotangens zurück
|
| date_part(text,timestamp)
|
Gibt einen Teil des Datums zurück
|
| date_part(text,interval)
|
Gibt einen Teil der Uhrzeit zurück
|
| date_trunc(text,timestamp)
|
Verkürzt das Datum
|
| degrees(float8)
|
Konvertiert Bogenmaß in Grad
|
| diameter(circle)
|
Gibt den Durchmesser des Kreises zurück
|
| exp(float8)
|
Erhebt e zum angegebenen Exponenten
|
| float(int)
|
Konvertiert einen Integer-Wert in einen Fließkomma-Wert
|
| float4(int)
|
Konvertiert einen Integer-Wert in einen Fließkomma-Wert
|
| height(box)
|
Gibt die Höhe der Box zurück
|
| host(inet)
|
Extrahiert die Host-Adresse als Text
|
| initcap(text)
|
Konvertiert den ersten Buchstaben jedes Wortes in Großbuchstaben
|
| interval(reltime)
|
Konvertiert in ein Intervall
|
| integer(float)
|
Konvertiert einen Fließkomma-Wert in einen Integer-Wert
|
| isclosed(path)
|
Gibt einen geschlossenen Pfad zurück
|
| isopen(path)
|
Gibt einen offenen Pfad zurück
|
| isfinite(timestamp)
|
Gibt eine finite Zeit zurück
|
| isfinite(interval)
|
Gibt eine finite Zeit zurück
|
| length(object)
|
Gibt die Länge eines Elements zurück
|
| ln(float8)
|
Gibt den natürlichen Logarithmus zurück
|
| log(float8)
|
Gibt den Logarithmus zur Basis 10 zurück
|
| lower(string)
|
Konvertiert den String in Kleinbuchstaben
|
| lseg(box)
|
Konvertiert die Box-Diagonale in einen lseg-Wert
|
| lseg(point,point)
|
Konvertiert die Punkte in einen lseg-Wert
|
| lpad(text,int,text)
|
Gibt einen links auf die angegebene Länge aufgefüllten String zurück
|
| ltrim(text,text)
|
Entfernt links stehende Zeichen aus dem Text
|
| masklen(cidr)
|
Berechnet die Länge der Netzmaske
|
| masklen(inet)
|
Berechnet die Länge der Netzmaske
|
| netmask(inet)
|
Konstruiert die Netzmaske als Text
|
| npoint(path)
|
Gibt die Anzahl der Punkte zurück
|
| NULLIF(eingabe,wert)
|
Gibt NULL zurück, wenn eingabe = wert, ansonsten wird eingabe zurückgegeben
|
| octet_length(string)
|
Gibt die Speicherlänge des Strings zurück
|
| path(polygon)
|
Konvertiert ein Polygon in einen Pfad
|
| pclose(path)
|
Konvertiert einen Pfad in einen geschlossenen Pfad
|
| pi()
|
Gibt die fundamentale Konstante pi zurück
|
| polygon(box)
|
Gibt ein 12-Punkt-Polygon zurück
|
| polygon(circle)
|
Gibt ein 12-Punkt-Polygon zurück
|
| polygon(npts,circle)
|
Gibt ein n-Punkt-Polygon zurück
|
| polygon(path)
|
Konvertiert den Pfad in ein Polygon
|
| point(circle)
|
Gibt den Mittelpunkt des Kreises zurück
|
| point(lseg,lseg)
|
Gibt die Schnittmenge zurück
|
| point(polygon)
|
Gibt den Mittelpunkt zurück
|
| position(string in string)
|
Gibt die Position des Teilstrings zurück
|
| pow(float8,float8)
|
Erhebt die Zahl in den angegebenen Exponenten
|
| popen(path)
|
Konvertiert den Pfad in einen offenen Pfad
|
| reltime(interval)
|
Konvertiert in einen reltime-Wert
|
| radians(float8)
|
Konvertiert Grad in Bogenmaß
|
| radius(circle)
|
Gibt den Radius des Kreises zurück
|
| round(float8)
|
Rundet auf die nächste ganze Zahl
|
| rpad(text,int,text)
|
Bringt einen rechts aufgefüllten String auf die angegebene Länge
|
| rtrim(text,text)
|
Entfernt rechts stehende Zeichen aus dem Text
|
| sin(float8)
|
Gibt den Sinus zurück
|
| sqrt(float8)
|
Gibt die Quadratwurzel zurück
|
| substring(string [from int] [for int])
|
Extrahiert den angegebenen Teilstring
|
| substr(text,int[,int])
|
Extrahiert den angegebenen Teilstring
|
| tan(float8)
|
Gibt den Tangens zurück
|
| text(char)
|
Konvertiert den Datentyp char in den Datentyp text
|
| text(varchar)
|
Konvertiert den Datentyp varchar in den Datentyp text
|
| textpos(text,text)
|
Sucht den angegebenen Teilstring
|
| timestamp(datum)
|
Konvertiert in einen timestamp
|
| timestamp(datum,time)
|
Konvertiert in einen timestamp
|
| to_char(timestamp, text)
|
Konvertiert einen timestamp in einen String
|
| to_char(int, text)
|
Konvertiert int4/int8 in einen String
|
| to_char(float, text)
|
Konvertiert float4/float8 in einen String
|
| to_char(numeric, text)
|
Konvertiert numeric in einen String
|
| to_date(text, text)
|
Konvertiert einen String in ein Datum
|
| to_number(text, text)
|
Konvertiert einen String in einen numerischen Wert
|
| to_timestamp(text, text)
|
Konvertiert einen String in einen timestamp
|
| translate(text,from,to)
|
Konvertiert Zeichen in einem String
|
| trim([leading|trailing| both] [string] quellstring)
|
Entfernt Zeichen aus einem String
|
| trunc(float8)
|
Verkürzt (zu 0 hin)
|
| upper(text)
|
Konvertiert Text in Großbuchstaben
|
| varchar(char)
|
Konvertiert char in varchar
|
| varchar(text)
|
Konvertiert text in varchar
|
| width(box)
|
Gibt die Breite der Box zurück
|
zurück zu SQL in a Nutshell
O'Reilly Home |
O'Reilly-Partnerbuchhandlungen |
Bestellinformationen
Kontaktieren Sie uns |
Über O'Reilly |
Datenschutz
© 2001, O'Reilly Verlag GmbH & Co.KG