Sie können Ausdrücke mit Funktionen verwenden. Dabei können die Funktionen auf die Daten der Ergebnistabelle angewendet oder in Suchbedingungen angegeben werden.
Sie benötigen die Demo-Daten für das SQL-Tutorial.
Starten Sie das Query Tool SQL Studio als Datenbankadministrator MONA mit dem Kennwort RED und melden Sie sich an die Demo-Datenbankinstanz DEMODB an.
Funktionsbeschreibungen im Referenzhandbuch |
Beispiele für diese Funktionsgruppe |
TRUNC, SIGN, ABS |
|
SIN, ATAN, DEGREES |
|
SUBSTR, UPPER, MAPCHAR |
|
SUBDATE, DAYOFMONTH, DAYNAME |
|
ADDTIME, TIMEDIFF, MAKETIME |
|
DAY, TIMESTAMP, DATE |
|
VALUE, LEAST, CASE-Funktion |
|
NUM, HEXTOROW, CHAR |
|
Aufruf einer mit CREATE FUNCTION definierten Datenbankfunktion |
Die Verwendung der meisten Funktionen ist selbsterklärend. Daher werden hier nur einige wenige ausgewählte Funktionen anhand von Beispielen vorgestellt.
Siehe auch:
SQL-Referenzhandbuch, Ausdruck
(expression)
SQL-Referenzhandbuch, Funktion
(function_spec)
Mit Hilfe der Stringfunktionen können Sie die Darstellung von Zeichenketten verändern.
SELECT cno, name &
', ' & firstname name
FROM hotel.customer WHERE cno = 3000
Vor- und Nachname werden miteinander verbunden.
Ergebnis
CNO |
NAME |
3000 |
Porter, Jenny |
Siehe auch:
SQL-Referenzhandbuch, Verkettung
(concatenation)
SELECT cno,
SUBSTR(firstname,1,1) & '. ' & name name
FROM hotel.customer WHERE cno = 3000
Vor- und Nachname werden miteinander verbunden, wobei der Vorname nur verkürzt dargestellt wird.
Ergebnis
CNO |
NAME |
3000 |
J. Porter |
Siehe auch:
SQL-Referenzhandbuch, SUBSTR(x,a,b)
Datumsfunktionen werden auf Datums- oder Zeitstempelwerte angewendet bzw. liefern als Ergebnis einen Datums- oder Zeitstempelwert.
SELECT rno, arrival, DAYNAME(arrival) arrival_day FROM hotel.reservation WHERE rno < 150
Anzeige des Wochentages der Ankunft
Ergebnis
RNO |
ARRIVAL |
ARRIVAL_DAY |
100 |
2004-11-13 |
Saturday |
110 |
2004-12-24 |
Friday |
120 |
2004-11-14 |
Sunday |
130 |
2005-02-01 |
Tuesday |
140 |
2004-04-12 |
Monday |
Siehe auch:
SQL-Referenzhandbuch, DAYNAME/MONTHNAME(t)
Mit Extraktionsfunktionen können Sie Teile von Datums-, Zeit- oder Zeitstempelwerten anzeigen lassen oder Datums-, Zeit- oder Zeitstempelwerte bilden.
SELECT name, 675456 number_of_days, DATE(675456) counted_date FROM hotel.city WHERE zip = '12203'
Anzeige, wann 675456 Tage nach dem 31.12.0000 vergangen sind
Ergebnis
NAME |
NUMBER_OF_DAYS |
COUNTED_DATE |
Albany |
675456 |
1850-05-03 |
Siehe auch:
SQL-Referenzhandbuch, DATE(a)
Die allgemeine CASE-Funktion untersucht eine Reihe von Suchbedingungen und liefert für jede Suchbedingung ein Ergebnis.
SELECT hno,
CASE
WHEN price IS NULL THEN
'Not yet
priced'
WHEN price < 70 THEN
'Very
cheap'
WHEN price >= 70 AND price < 100
THEN 'Normal
price'
ELSE 'Expensive
hotel'
END price_range
FROM hotel.room WHERE hno < 100 AND type = 'single'
Einschätzung der Preisklassen einiger Hotels für Einzelzimmer
Ergebnis
HNO |
PRICE_RANGE |
10 |
Expensive hotel |
20 |
Normal price |
30 |
Very cheap |
40 |
Normal price |
50 |
Expensive hotel |
60 |
Expensive hotel |
70 |
Expensive hotel |
80 |
Normal price |
90 |
Normal price |
Siehe auch:
SQL-Referenzhandbuch, Allgemeine CASE-Funktion
(searched_case_function)
Die einfache CASE-Funktion vergleicht einen Ausdruck mit einer Reihe von einfachen Ausdrücken, um jeweils einen Ergebnisausdruck zu bestimmen.
SELECT hno,
CASE price
WHEN NULL THEN 'Not yet
priced'
WHEN 70 THEN 'Very
cheap'
WHEN 90 THEN 'Cheap'
WHEN 100 THEN 'Normal hotel'
WHEN 115 THEN 'Expensive
hotel'
WHEN 135 THEN 'Very
expensive hotel'
ELSE 'Not yet in
price_range list'
END price_range
FROM hotel.room WHERE hno < 100 AND type = 'single'
Vergleich der Preise einiger Hotels mit einer Bewertungsskala für Einzelzimmerpreise
Ergebnis
HNO |
PRICE_RANGE |
10 |
Very expensive hotel |
20 |
Very cheap |
30 |
Not yet in price_range list |
40 |
Not yet in price_range list |
50 |
Not yet in price_range list |
60 |
Not yet in price_range list |
70 |
Expensive hotel |
80 |
Cheap |
90 |
Cheap |
Siehe auch:
SQL-Referenzhandbuch, Einfache CASE-Funktion
(simple_case_function)
Voraussetzung für die Ausführung dieses Beispiels ist das Anlegen der Datenbankfunktion avgprice(zip), wie im Abschnitt Datendefinition ® Datenbankfunktionen beschrieben.
SELECT hno, avgprice(zip) avgprice FROM hotel.hotel WHERE hno = 40
Ergebnis
HNO |
AVGPRICE |
40 |
87.5 |
Siehe auch:
SQL-Referenzhandbuch, Datenbankfunktionsaufruf
(dbfunction_call)
Weitere Beispiele zur Datenanfrage