Verwenden einzeiliger Funktionen
Verwenden einzeiliger Funktionen zum Anpassen der Ausgabe
Oracle SQL bietet eine umfangreiche Bibliothek integrierter Funktionen, die für verschiedene Aufgaben verwendet werden können. Die wesentlichen Funktionen einer Funktion können die Fallkonvertierung von Zeichenfolgen, In-String- oder Teilzeichenfolgenoperationen, mathematische Berechnungen für numerische Daten und Datumsoperationen für Datumstypwerte sein. SQL-Funktionen übernehmen optional Argumente vom Benutzer und geben zwingend einen Wert zurück.
In einer breiteren Kategorie gibt es zwei Arten von Funktionen:
Single Row functions- Einzelne Zeilenfunktionen sind diejenigen, die an einer einzelnen Zeile arbeiten und eine Ausgabe pro Zeile zurückgeben. Beispielsweise sind Längen- und Fallkonvertierungsfunktionen einzeilige Funktionen.
Multiple Row functions - Mehrere Zeilenfunktionen arbeiten mit Gruppen von Zeilen und geben ein Ergebnis für den gesamten Satz von Zeilen zurück. Sie werden auch als Gruppenfunktionen bezeichnet.
Einzeilige Funktionen
Einzelne Zeilenfunktionen können Zeichenfunktionen, numerische Funktionen, Datumsfunktionen und Konvertierungsfunktionen sein. Beachten Sie, dass diese Funktionen zum Bearbeiten von Datenelementen verwendet werden. Diese Funktionen erfordern ein oder mehrere Eingabeargumente und arbeiten mit jeder Zeile, wodurch ein Ausgabewert für jede Zeile zurückgegeben wird. Das Argument kann eine Spalte, ein Literal oder ein Ausdruck sein. Einzelne Zeilenfunktionen können in der SELECT-Anweisung, der WHERE- und der ORDER BY-Klausel verwendet werden. Einzeilige Funktionen können sein -
General functions- Enthält normalerweise NULL-Handhabungsfunktionen. Die Funktionen unter der Kategorie sind NVL, NVL2, NULLIF, COALESCE, CASE, DECODE.
Case Conversion functions- Akzeptiert die Zeicheneingabe und gibt einen Zeichenwert zurück. Funktionen unter der Kategorie sind UPPER, LOWER und INITCAP.
Die UPPER-Funktion konvertiert eine Zeichenfolge in Großbuchstaben.
Die LOWER-Funktion konvertiert eine Zeichenfolge in Kleinbuchstaben.
Die INITCAP-Funktion konvertiert nur die Anfangsalphabete einer Zeichenfolge in Großbuchstaben.
Character functions- Akzeptiert die Zeicheneingabe und gibt die Zahl oder den Zeichenwert zurück. Funktionen unter der Kategorie sind CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM und REPLACE.
Die CONCAT-Funktion verkettet zwei Zeichenfolgenwerte.
Die LENGTH-Funktion gibt die Länge der Eingabezeichenfolge zurück.
Die SUBSTR-Funktion gibt einen Teil einer Zeichenfolge von einem bestimmten Startpunkt zu einem Endpunkt zurück.
Die INSTR-Funktion gibt die numerische Position eines Zeichens oder einer Zeichenfolge in einer bestimmten Zeichenfolge zurück.
LPAD- und RPAD-Funktionen füllen die angegebene Zeichenfolge bis zu einer bestimmten Länge mit einem bestimmten Zeichen auf.
Die TRIM-Funktion schneidet die Zeichenfolgeneingabe von Anfang oder Ende ab.
Die Funktion REPLACE ersetzt Zeichen aus der Eingabezeichenfolge durch ein bestimmtes Zeichen.
Date functions- Datumsarithmetische Operationen geben Datum oder numerische Werte zurück. Funktionen unter der Kategorie sind MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND und TRUNC.
Die Funktion MONTHS_BETWEEN gibt die Anzahl der Monate zwischen den beiden Daten zurück.
Die Funktion ADD_MONTHS fügt einem Eingabedatum 'n' Monate hinzu.
Die Funktion NEXT_DAY gibt den nächsten Tag des angegebenen Datums zurück.
Die Funktion LAST_DAY gibt den letzten Tag des Monats des Eingabedatums zurück.
Mit den Funktionen ROUND und TRUNC wird der Datumswert gerundet und abgeschnitten.
Number functions- Akzeptiert numerische Eingaben und gibt numerische Werte zurück. Funktionen unter der Kategorie sind ROUND, TRUNC und MOD.
Mit den Funktionen ROUND und TRUNC wird der Zahlenwert gerundet und abgeschnitten.
MOD wird verwendet, um den Rest der Teilungsoperation zwischen zwei Zahlen zurückzugeben.
Abbildungen
Allgemeine Funktionen
Die folgende SELECT-Abfrage demonstriert die Verwendung der NVL-Funktion.
SELECT first_name, last_name, salary, NVL (commission_pct,0)
FROM employees
WHERE rownum < 5;
FIRST_NAME LAST_NAME SALARY NVL(COMMISSION_PCT,0)
-------------------- ------------------------- ---------- ---------------------
Steven King 24000 0
Neena Kochhar 17000 0
Lex De Haan 17000 0
Alexander Hunold 9000 0
Case Conversion-Funktionen
Die folgende SELECT-Abfrage demonstriert die Verwendung von Fallkonvertierungsfunktionen.
SELECT UPPER (first_name), INITCAP (last_name), LOWER (job_id)
FROM employees
WHERE rownum < 5;
UPPER(FIRST_NAME) INITCAP(LAST_NAME) LOWER(JOB_
-------------------- ------------------------- ----------
STEVEN King ad_pres
NEENA Kochhar ad_vp
LEX De Haan ad_vp
ALEXANDER Hunold it_prog
Zeichenfunktionen
Die folgende SELECT-Abfrage demonstriert die Verwendung der CONCAT-Funktion zum Verketten von zwei Zeichenfolgenwerten.
SELECT CONCAT (first_name, last_name)
FROM employees
WHERE rownum < 5;
CONCAT(FIRST_NAME,LAST_NAME)
--------------------------------
EllenAbel
SundarAnde
MozheAtkinson
DavidAustin
Die folgende SELECT-Abfrage demonstriert die Verwendung der Funktionen SUBSTR und INSTR. Die SUBSTR-Funktion gibt den Teil der Eingabezeichenfolge von der 1. Position zur 5. Position zurück. Die INSTR-Funktion gibt die numerische Position des Zeichens 'a' im Vornamen zurück.
SELECT SUBSTR (first_name,1,5), INSTR (first_name,'a')
FROM employees
WHERE rownum < 5;
SUBST INSTR(FIRST_NAME,'A')
----- ---------------------
Ellen 0
Sunda 5
Mozhe 0
David 2
Die folgende SELECT-Abfrage zeigt die Verwendung von LPAD und RPAD, um die Mitarbeiter- und Jobinformationen hübsch auszudrucken.
SELECT RPAD(first_name,10,'_')||LPAD (job_id,15,'_')
FROM employees
WHERE rownum < 5;
RPAD(FIRST_NAME,10,'_')||
-------------------------
Steven____________AD_PRES
Neena_______________AD_VP
Lex_________________AD_VP
Alexander_________IT_PROG
Zahlenfunktionen
Die folgende SELECT-Abfrage demonstriert die Verwendung der Funktionen ROUND und TRUNC.
SELECT ROUND (1372.472,1)
FROM dual;
ROUND(1372.472,1)
-----------------
1372.5
SELECT TRUNC (72183,-2)
FROM dual;
TRUNC(72183,-2)
---------------
72100
Datumsarithmetikoperationen
Die folgende SELECT-Abfrage zeigt eine Datumsarithmetikfunktion, bei der die Differenz zwischen dem Einstellungsdatum des Mitarbeiters und dem Sysdate vorgenommen wird.
SELECT employee_id, (sysdate - hire_date) Employment_days
FROM employees
WHERE rownum < 5;
EMPLOYEE_ID EMPLOYMENT_DAYS
----------- ---------------
100 3698.61877
101 2871.61877
102 4583.61877
103 2767.61877
Datumsfunktionen
Die folgende SELECT-Abfrage demonstriert die Verwendung der Funktionen MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY und LAST_DAY.
SELECT employee_id, MONTHS_BETWEEN (sysdate, hire_date) Employment_months
FROM employees
WHERE rownum < 5;
EMPLOYEE_ID EMPLOYMENT_MONTHS
----------- -----------------
100 121.504216
101 94.3751837
102 150.633248
103 90.9558289
SELECT ADD_MONTHS (sysdate, 5), NEXT_DAY (sysdate), LAST_DAY (sysdate)
FROM dual;
ADD_MONTH NEXT_DAY( LAST_DAY(
--------- --------- ---------
01-JAN-14 05-AUG-13 31-AUG-13