sql >> Database >  >> RDS >> Oracle

Enkele rijfuncties in Oracle sql

Dit maakt deel uit van de Oracle SQL-zelfstudie en heeft goede voorbeelden, uitleg over enkele rijfuncties in Oracle Sql

Functies zijn programma's die nul of meer argumenten aannemen en een enkele waarde retourneren.

Functies kunnen enkele rij, meerdere rijfuncties zijn

We zullen hier enkele rij-functies in SQL bespreken

Wat zijn enkele rij-functies in Oracle SQL

Functies met één rij zijn ingebouwde functies en omvatten karakter-, numerieke, datum-, conversie- en door de gebruiker gedefinieerde functies.

Alle enkele rijfuncties kunnen worden gebruikt in SQL- of PL/SQL-programma's en kunnen worden gebruikt in de SELECT-, WHERE- en ORDER BY-clausules.

Functies met één rij omvatten TO_CHAR, TO_DATE, UPPER, LOWER enz.

Functies met één rij kunnen ook worden gebruikt in de SET-clausule van en de opdracht UPDATE. Functies met één rij kunnen niet worden gebruikt in een HAVING-component.

Laten we eens kijken naar de verschillende belangrijke enkele rijfuncties

Tekenfuncties in  SQL

De karakterfuncties zijn:
LOWER(‘char’)  :convert string to kleine letters

SQL> select ename from  "EMP";

ENAME
----------
Blake
Clark
Scott

SQL> select lower(ename) from  "EMP";

LOWER(ENAM
----------
blake
clark
scott

UPPER(‘CHAR’)  :tekenreeks converteren naar hoofdletters

SQL> select upper(ename) from  "EMP";

UPPER(ENAM
----------
BLAKE
CLARK
SCOTT

INITCAP(‘Char’) :retourneer een string met de eerste letter van elk woord in hoofdletters

SQL> select initcap(ename) from  "EMP";

INITCAP(EN
----------
Blake
Clark
Scott

CONCAT – Functie heeft een limiet van twee parameters.

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

LENGTH:geef de lengte van de string terug

SQL> select ename,length(ename) from emp;

ENAME      LENGTH(ENAME)
---------- -------------
Blake                  5
Clark                  5
Scott                  5

LENKTHB:retourneert de lengte van een string in bytes

SQL> select ename,length(ename),lengthb(ename) from emp;

ENAME      LENGTH(ENAME) LENGTHB(ENAME)
---------- ------------- --------------
Blake                  5              5
Clark                  5              5
Scott                  5              5

INSTR :retourneert de index van de gezochte string binnen een string,

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:linker pad een string met n karakters

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:voorlooptekens uit een string verwijderen

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

VERVANGEN:zoek op substrings en vervang

SELECT REPLACE('JACK and JUE','J','BL') "Changes"
     FROM DUAL;

Changes
--------------
BLACK and BLUE

SUBSTR – retourneer een sectie van een string gespecificeerd in numerieke waarden
SUBSTRB – hetzelfde als SUBSTR alleen met bytes
SOUNDEX – retourneer een fonetische representatie van een string
TRANSLATE – voer het zoeken naar tekens uit en vervang
TRIM – tekenreeks voorloop- en volgtekens van tekenreeks

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;

Zoals uitgelegd, werkt de enkele rij-functie op elke rij

Gerelateerd:Oracle SQL-decoderingsverwerking

Numerieke functies in Sql

De cijferfuncties zijn:
ROUND :rondt een getal af

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:kapt een getal af
MOD:geeft de modulus.i.e. de rest terug

SQL> select  mod(4,2) from dual;

  MOD(4,2)
----------
         0

SQL> select  mod(4,3) from dual;

  MOD(4,3)
----------
         1

SIGN:retour positief, negatief of nul
CEIL – retourneert het eerstvolgende hogere getal

SQL> select  ceil(3.1) from dual;

 CEIL(3.1)
----------
         4

SQL> select  ceil(3) from dual;

   CEIL(3)
----------
         3

LOG – geef de logaritme terug
FLOOR – geef het volgende kleinere getal terug

SQL> select  floor(3.1) from dual;

FLOOR(3.1)
----------
         3

SQL> select  floor(3) from dual;

  FLOOR(3)
----------
         3

SQRT – retourneer de vierkantswortel van een getal

Examples

SELECT SQRT(25) "Square root" FROM DUAL;
SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;

Oracle-datumfuncties

De Oracle-datumfuncties zijn:
SYSDATE :retour huidige datum
DUAL
MONTHS_BETWEEN (Returns a number) :return aantal maanden tussen twee datums
ADD_MONTHS:voeg een aantal maanden toe aan date
NEXT_DAY :retourneert de volgende dag van de week na een bepaalde datum
LAST_DAY :retour laatste dag van de maand


DBTIMEZONE – retourneert de tijdzone van de database
TRUNC:kapt een datum af.
CURRENT_TIMESTAMP – geeft de datum en tijd terug in TIMESTAMP-formaat

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


Expliciet type conversiefuncties

TO_CHAR -converteert getal of datum naar VARCHAR2
TO_NUMBER:converteert teken naar getal
TO_DATE:converteert naar datum

Examples
SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual
  2  ;

TO_CHAR(SYSDATE,'DD-
--------------------
01-SEP-2019,34

Andere functies

NVL (expr1, expr2) en NVL3
NVL – heeft twee argumenten:NVL(x1, x2), Retourneert x2 wanneer x1 NULL is of x1 wanneer x1 niet NULL is. NVL2 – heeft drie argumenten:NVL2(x1, x2, x3), retourneert x3 wanneer x1 NULL is of x2 wanneer x1 niet NULL is

DECODE Deze functie werkt als een IF-THEN-ELSE- of CASE-instructie.
COALESCE – retourneer de eerste niet-NULL-waarde in een lijst
SYS_CONTEXT – retourneer systeemkenmerken
UID – retourneer numerieke gebruikers-ID voor huidige sessie

Kleine quiz om de kennis te testen over functies met één rij in SQL

Vraag 1 :U gebruikt functies met één rij in een select-statement. Welke functie kan het beste worden gecategoriseerd als vergelijkbaar in functie met een if-then-else-statement?

A) sqrt( )
B) decoderen( )
C) rowidtochar( )
D) new_time( )

Uitleg:

De functie decode() werkt als een if-then-else-clausule in uw SQL-instructies. Keuze sqrt( ) is onjuist omdat sqrt( ) de
vierkantswortel van een getal oplevert. Keuze new_time( ) is onjuist omdat de functie new_time( ) een nieuwe tijd retourneert op basis van waarden die zijn opgegeven in de aanroep van die functie.

Ten slotte is de keuze rowidtochar() onjuist omdat rowidtochar() een functie is die ROWID-informatie omzet in CHAR-informatie.

Vraag 2:

U wilt functies met één rij gebruiken in uw SQL-instructies. Welke drie van de volgende zijn getalfuncties? (Kies drie van de vier.)

A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Uitleg:
De enige niet-getalfunctie in deze list is de to_number( ) functie,
wat een conversie bewerking is.

Vraag 3 De volgende SQL-instructie is afkomstig uit een SQL*Plus-sessie:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr(ENAME,1,1)> to_number ('V') en EMPNO> 1000
bestellen per EMPNO desc, ENAME asc;

Welke van de volgende regels in de select-instructie die in het
vorige codeblok wordt getoond, bevat een fout?

A) selecteer decoderen (EMPNO, 58385, 'INACTIEF', 'ACTIVE') empno
B) van EMP
C) en EMPNO> 02000
D) waarbij substr(ENAME,1,1 )> to_number('S')
E) bestellen door EMPNO desc, ENAME asc;

Uitleg:(D)
Tekens die alfabetisch zijn, zoals S, kunnen niet worden omgezet in cijfers. Wanneer deze instructie wordt uitgevoerd, produceert deze een fout op deze regel. De
andere regels in deze zoekopdracht zijn correct zoals samengesteld.

Vraag 4  Welk SELECT-statement krijgt het resultaat 'elloworld' van de string 'HelloWorld'?
A. SELECTEER SUBSTR(‘HelloWorld’,1) VAN dual;
B. SELECTEER INITCAP(TRIM (‘HelloWorld’, 1,1)) UIT dual;
C. SELECTEER LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM (' H' VAN 'HelloWorld')) VAN dual;
Antwoord:E

Ik hoop dat je dit bericht leuk vindt over functies met één rij in SQL. Geef alsjeblieft de feedback

Gerelateerde artikelen
Analytische functies in Oracle:Oracle Analytische functies berekenen een geaggregeerde waarde op basis van een groep rijen door gebruik te maken van over partitie door Oracle-clausule, ze verschillen van geaggregeerde functies
rang in Oracle:RANK, DENSE_RANK en ROW_NUMBER zijn orakel-analytisch functie die wordt gebruikt om rijen te rangschikken in de groep rijen genaamd window
Lead-functie in oracle:bekijk de LAG-functie in Oracle &Lead-functie in Oracle, hoe ze te gebruiken in analytische query's en hoe het werkt in Oracle sql
Top-N-query's in Oracle :Bekijk deze pagina over het verkennen van de verschillende manieren om Top-N-query's in Oracle en paginering in Oracle-query Oracle-database te bereiken.


  1. Parallelle unnest() en sorteervolgorde in PostgreSQL

  2. Hoe ruby-oci8 installeren?

  3. Hoe de eerste letter van elk woord in PostgreSQL met een hoofdletter te schrijven

  4. Nieuwe functie voor BYOC – Clusters onderbreken en hervatten