Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Einzelne Zeilenfunktionen in Oracle SQL

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 sqlTop-N-Abfragen in Oracle:Schauen Sie sich diese Seite an, um die verschiedenen Möglichkeiten zu erkunden, Top-N-Abfragen in Oracle und Paginierung in Oracle-Abfragen und Oracle-Datenbanken zu erreichen.