Dies ist Teil des Oracle SQL-Tutorials und enthält gute Beispiele und Erklärungen zu einzelnen Zeilenfunktionen in Oracle Sql
Funktionen sind Programme, die null oder mehr Argumente annehmen und einen einzelnen Wert zurückgeben.
Funktionen können einzeilige, mehrzeilige Funktionen sein
Wir werden hier einzelne Zeilenfunktionen in SQL besprechen
Was sind Einzelzeilenfunktionen in Oracle SQL
Einzeilige Funktionen sind integrierte Funktionen und umfassen Zeichen-, Zahlen-, Datums-, Konvertierungs- und benutzerdefinierte Funktionen.
Alle Einzelzeilenfunktionen können in SQL- oder PL/SQL-Programmen und in den SELECT-, WHERE- und ORDER BY-Klauseln verwendet werden.
Zu den einzeiligen Funktionen gehören TO_CHAR, TO_DATE, UPPER, LOWER usw.
Einzeilige Funktionen können auch in der SET-Klausel und dem UPDATE-Befehl verwendet werden. Einzeilige Funktionen können nicht in einer HAVING-Klausel verwendet werden.
Sehen wir uns die verschiedenen wichtigen Einzelzeilenfunktionen an
Zeichenfunktionen in SQL
Die Zeichenfunktionen sind:
LOWER(‘char’) :String in Kleinbuchstaben umwandeln
SQL> select ename from "EMP"; ENAME ---------- Blake Clark Scott SQL> select lower(ename) from "EMP"; LOWER(ENAM ---------- blake clark scott
UPPER(‘CHAR’) :String in Großbuchstaben umwandeln
SQL> select upper(ename) from "EMP"; UPPER(ENAM ---------- BLAKE CLARK SCOTT
INITCAP(‘Char’) :gibt einen String mit dem Anfangsbuchstaben jedes Wortes in Großbuchstaben zurück
SQL> select initcap(ename) from "EMP"; INITCAP(EN ---------- Blake Clark Scott
CONCAT – Die Funktion hat eine Grenze von zwei Parametern.
SQL> select concat(ename,DEPTNO) from emp; CONCAT(ENAME,DEPTNO) -------------------------------------------------- Blake10 Clark10 Scott20 SQL> select concat(ename,empno,DEPTNO) from emp; select concat(ename,empno,DEPTNO) from emp * ERROR at line 1: ORA-00909: invalid number of arguments
LÄNGE :gibt die Länge der Zeichenkette zurück
SQL> select ename,length(ename) from emp; ENAME LENGTH(ENAME) ---------- ------------- Blake 5 Clark 5 Scott 5
LENGTHB:gibt die Länge eines Strings in Bytes zurück
SQL> select ename,length(ename),lengthb(ename) from emp; ENAME LENGTH(ENAME) LENGTHB(ENAME) ---------- ------------- -------------- Blake 5 5 Clark 5 5 Scott 5 5
INSTR :gibt den Index des gesuchten Strings innerhalb eines Strings zurück,
SQL> select ename,instr(ename,'A') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 0 Clark 0 Scott 0 SQL> select ename,instr(ename,'a') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 3 Clark 3 Scott 0
LPAD:links einen String mit n Zeichen auffüllen
SQL> select ename,lpad(ename,12) from emp; ENAME LPAD(ENAME,12) ---------- ------------------------------------ Blake Blake Clark Clark Scott Scott SQL> select ename,lpad(ename,12,'-') from emp; ENAME LPAD(ENAME,12,'-') ---------- ------------------------------------ Blake -------Blake Clark -------Clark Scott -------Scott
LTRIM:führende Zeichen aus einem String entfernen
SQL> select ltrim(' name') from dual; LTRI ---- name SQL> select ltrim(' name ') from dual; LTRIM(' ------- name SQL> select LTRIM('000123', '0') from dual; LTR --- 123 SQL> select LTRIM('1000123', '0') from dual; LTRIM(' ------- 1000123
REPLACE:Führen Sie eine Teilstring-Suche durch und ersetzen Sie
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes -------------- BLACK and BLUE
SUBSTR – gibt einen Abschnitt einer Zeichenfolge zurück, die in numerischen Werten angegeben ist
SUBSTRB – dasselbe wie SUBSTR, nur mit Bytes
SOUNDEX – gibt eine phonetische Darstellung einer Zeichenfolge zurück
TRANSLATE – führt eine Zeichensuche und -ersetzung durch
TRIM – Zeichenfolge führende und abschließende Zeichen der Zeichenfolge
Examples select emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') from dept; select lower(emp_name) from employee; select upper(first_name) from emp;
Wie bereits erläutert, funktioniert die Einzelzeilenfunktion für jede Zeile
Verwandt: Oracle-SQL-Decodierungsverarbeitung
Numerische Funktionen in SQL
Die Zahlenfunktionen sind:
ROUND :rundet eine Zahl
SQL> select round(3.456) from dual; ROUND(3.456) ------------ 3 SQL> select round(3.456,2) from dual; ROUND(3.456,2) -------------- 3.46
TRUNC :schneidet eine Zahl ab
MOD:gibt den Modulus zurück,d. h. den Rest
SQL> select mod(4,2) from dual; MOD(4,2) ---------- 0 SQL> select mod(4,3) from dual; MOD(4,3) ---------- 1
SIGN:Rückgabe positiv, negativ oder Null
CEIL – gibt die nächsthöhere Zahl zurück
SQL> select ceil(3.1) from dual; CEIL(3.1) ---------- 4 SQL> select ceil(3) from dual; CEIL(3) ---------- 3
LOG – gibt den Logarithmus zurück
FLOOR – gibt die nächstkleinere Zahl zurück
SQL> select floor(3.1) from dual; FLOOR(3.1) ---------- 3 SQL> select floor(3) from dual; FLOOR(3) ---------- 3
SQRT – gibt die Quadratwurzel einer Zahl zurück
Examples SELECT SQRT(25) "Square root" FROM DUAL; SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;
Oracle-Datumsfunktionen
Die Oracle-Datumsfunktionen sind:
SYSDATE :gibt das aktuelle Datum zurück
DUAL
MONTHS_BETWEEN (gibt eine Zahl zurück) :gibt die Anzahl der Monate zwischen zwei Daten zurück
ADD_MONTHS :addiert eine Anzahl von Monaten zu date
NEXT_DAY :gibt den nächsten Wochentag nach einem bestimmten Datum zurück
LAST_DAY :gibt den letzten Tag des Monats zurück
DBTIMEZONE – gibt die Zeitzone der Datenbank zurück
TRUNC:schneidet ein Datum ab.
CURRENT_TIMESTAMP – gibt Datum und Uhrzeit im TIMESTAMP-Format zurück
Examples SQL> select CURRENT_TIMESTAMP from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 01-SEP-19 04.33.26.493097 PM +00:00 SQL> select sysdate from dual; SYSDATE --------------- 01-SEP-19
Explizite Konvertierungsfunktionen
TO_CHAR -wandelt Zahl oder Datum in VARCHAR2 um
TO_NUMBER :Wandelt Zeichen in Zahl um
TO_DATE:Wandelt in Datum um
Examples SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2 ; TO_CHAR(SYSDATE,'DD- -------------------- 01-SEP-2019,34
Andere Funktionen
NVL (expr1, expr2) und NVL3
NVL – akzeptiert zwei Argumente:NVL(x1, x2), Gibt x2 zurück, wenn x1 NULL ist, oder x1, wenn x1 nicht NULL ist. NVL2 – verwendet drei Argumente:NVL2(x1, x2, x3), gibt x3 zurück, wenn x1 NULL ist, oder x2, wenn x1 nicht NULL ist
DECODE Diese Funktion funktioniert wie eine IF-THEN-ELSE- oder CASE-Anweisung.
COALESCE – gibt den ersten Nicht-NULL-Wert in einer Liste zurück
SYS_CONTEXT – gibt Systemattribute zurück
UID – gibt eine numerische Benutzer-ID zurück für die aktuelle Sitzung
Kleines Quiz, um das Wissen über Einzelzeilenfunktionen in SQL zu testen
Frage 1 :Sie verwenden einzeilige Funktionen in einer Select-Anweisung. Welche Funktion kann am ehesten als ähnliche Funktion wie eine if-then-else-Anweisung eingestuft werden?
A) sqrt( )
B) decode( )
C) rowidtochar( )
D) new_time( )
Erklärung:
Die decode( )-Funktion verhält sich wie eine if-then-else-Klausel in Ihren SQL-Anweisungen. Auswahl sqrt( ) ist falsch, da sqrt( ) die
Quadratwurzel einer Zahl erzeugt. Die Auswahl new_time( ) ist falsch, weil die new_time( )-Funktion eine neue Zeit basierend auf Werten zurückgibt, die im Aufruf dieser Funktion angegeben wurden.
Schließlich ist die Auswahl rowidtochar( ) falsch, da rowidtochar( ) eine Funktion ist, die ROWID-Informationen in CHAR-Informationen umwandelt.
Frage 2:
Sie möchten einzeilige Funktionen in Ihren SQL-Anweisungen verwenden. Welche drei der folgenden sind Zahlenfunktionen? (Wählen Sie drei der vier aus.)
A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Erklärung:
Die einzige Nicht-Zahlenfunktion in dieser list ist die Funktion to_number( ),
die eine Umwandlungsoperation ist.
Frage 3 Die folgende SQL-Anweisung wurde einer SQL*Plus-Sitzung entnommen:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr(ENAME,1,1)> to_number ('V') und EMPNO> 1000
order by EMPNO desc, ENAME asc;
Welche der folgenden Zeilen in der Select-Anweisung, die im
vorherigen Codeblock gezeigt wird, enthält einen Fehler?
A) select decode(EMPNO, 58385, 'INACTIVE', 'ACTIVE') empno
B) from EMP
C) and EMPNO> 02000
D) where substr(ENAME,1,1 )> to_number('S')
E) order by EMPNO desc, ENAME asc;
Erläuterung:(D)
Buchstaben wie S können nicht in Zahlen umgewandelt werden. Wenn diese Anweisung ausgeführt wird, erzeugt sie einen Fehler in dieser Zeile. Die
anderen Zeilen in dieser Abfrage sind korrekt zusammengesetzt.
Frage 4 Welche SELECT-Anweisung erhält das Ergebnis „elloworld“ aus der Zeichenfolge „HelloWorld“?
A. SELECT SUBSTR( ‘HelloWorld’,1) FROM dual;
B. SELECT INITCAP(TRIM (‘HelloWorld’, 1,1)) FROM dual;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM (' H' FROM 'HelloWorld')) FROM dual;
Antwort:E
Ich hoffe, Ihnen gefällt dieser Beitrag über Funktionen für einzelne Zeilen in SQL. Bitte geben Sie Feedback
Verwandte Artikel
Analytische Funktionen in Oracle:Oracle Analytische Funktionen berechnen einen aggregierten Wert basierend auf einer Gruppe von Zeilen, indem sie die Klausel over partition by oracle verwenden, sie unterscheiden sich von aggregierten Funktionen
Rang in Oracle:RANK, DENSE_RANK und ROW_NUMBER sind orakelanalytisch Funktion, die verwendet wird, um Zeilen in der Gruppe von Zeilen mit dem Namen Fenster zu ordnen
Lead-Funktion in Oracle:Sehen Sie sich die LAG-Funktion in Oracle und die Lead-Funktion in Oracle an, wie man sie in analytischen Abfragen verwendet und wie sie in Oracle sql