Descriere Nvl sql. Conversii NVL pentru diferite tipuri de date

Am atins puțin mai devreme funcțiile imbricate, acum le vom analiza mai detaliat. De asemenea, vom analiza funcțiile pentru lucrul cu valori NULL și funcțiile care ajută la implementarea operației de ramificare într-o interogare.

Funcții imbricate

Funcțiile imbricate folosesc valoarea returnată a unei funcții ca parametru de intrare pentru o altă funcție. Funcțiile returnează întotdeauna o singură valoare. Prin urmare, puteți trata rezultatul unui apel de funcție ca o valoare literală atunci când îl utilizați ca parametru pentru un apel către o altă funcție. Funcțiile inline pot fi imbricate la orice nivel de imbricare. Un apel de funcție arată astfel

Funcția1 (parametrul1, parametrul2,…) = rezultat

Înlocuirea unui parametru de funcție cu un apel către o altă funcție poate avea ca rezultat expresii precum

F1 (param1.1, F2 (param2.1, param2.2, F3 (param3.1)), param1.3)

Funcțiile imbricate sunt evaluate mai întâi înainte ca rezultatele lor să fie folosite ca intrări pentru alte funcții. Funcțiile sunt evaluate de la cel mai adânc nivel de cuibărit la cel mai înalt, de la stânga la dreapta. Expresia anterioară se execută după cum urmează

  1. Funcția F3 (param1) este calculată și valoarea returnată este folosită ca al treilea parametru pentru funcția 2, să o numim param2.
  2. Apoi funcția F2 (param1, param2.2, param2.3) este calculată și valoarea returnată este utilizată ca al doilea parametru al funcției F1 - param1.2
  3. În final, funcția F1 (param1, param2, param1.3) este evaluată și returnată programului apelant.

Astfel, funcția F3 se află la al treilea nivel de imbricare.

Luați în considerare cererea

selectați ziua_următoare (ziua_ultima (sysdate) -7, 'marți') din dual;

  1. Există trei funcții în această solicitare, de jos în sus - SYSDATE, LAST_DAY, NEXT_DAY. Solicitarea se execută după cum urmează
  2. Este executată cea mai imbricată funcție SYSDATE. Acesta returnează ora curentă a sistemului. Să presupunem că data curentă este 28 octombrie 2009
  3. În continuare, se calculează rezultatul funcției de nivel al doilea LAST_DAY. LAST_DATE ('28 -OCT-2009 ') returnează ultima zi a lunii octombrie 2009, adică 31 octombrie 2009.
  4. Apoi șapte zile sunt scăzute din această dată - se dovedește 24 octombrie.
  5. În cele din urmă, funcția NEXT_DAY ('24 -OCT-2009 ',' tue ') este evaluată, iar interogarea returnează ultima marți din octombrie - care este 27-OCT-2009 în exemplul nostru.

Este destul de greu să înțelegeți și să construiți expresii complexe folosind multe apeluri de funcții imbricate, dar acest lucru vine cu timp și practică. Puteți împărți astfel de expresii în părți și le puteți testa separat. Tabelul DUAL este foarte util pentru testarea interogărilor și apelurilor de funcții. Puteți testa și depana componente mici, care pot fi apoi combinate într-o expresie mare și dorită.

Funcții de ramificare

Funcțiile de ramificare, cunoscute și ca IF-THEN-ELSE, sunt utilizate pentru a determina calea de execuție în funcție de anumite circumstanțe. Funcțiile de ramificare returnează rezultate diferite în funcție de rezultatul evaluării unei condiții. În grupul de astfel de funcții se disting funcțiile de lucru cu valoarea NULL: NVL, NVL2, NULLIF și COALESCE. Și, de asemenea, funcțiile comune reprezentate de funcția DECODE și expresia CASE. Funcția DECODE este o funcție Oracle, în timp ce expresia CASE este prezentă în standardul ANSI SQL.

Funcția NVL

Funcția NVL testează valoarea unei coloane sau a unei expresii a oricărui tip de date pentru NULL. Dacă valoarea este NULL, returnează o valoare implicită alternativă non-NULL; în caz contrar, valoarea inițială este returnată.

Funcția NVL are doi parametri necesari și sintaxa este NVL (original, ifnull) unde original este valoarea originală care trebuie verificată și ifnull este rezultatul returnat de funcție dacă original este NULL. Tipul de date al parametrilor ifnull și original trebuie să fie compatibil. Adică, fie tipul de date trebuie să fie același, fie trebuie să fie posibilă conversia implicită a valorilor de la un tip la altul. Funcția NVL returnează o valoare de același tip de date ca tipul de date al parametrului original. Luați în considerare trei cereri

Interogarea 1: selectați nvl (1234) din dual;

Interogarea 2: selectați nvl (null, 1234) din dual;

Interogarea 3: selectați nvl (substr (‘abc’, 4), ‘Nu există subșir’) din dual;

Deoarece funcția NVL necesită doi parametri, interogarea 1 va returna o eroare ORA-00909: număr invalid de argumente. Interogarea 2 va returna 1234, deoarece este verificat NULL și este NULL. Interogarea trei folosește o funcție SUBSTR imbricată care încearcă să extragă cel de-al patrulea caracter dintr-un șir de trei caractere, returnează NULL, iar funcția NVL returnează șirul „Nu există sbustring”.

Funcția NVL este foarte utilă atunci când lucrați cu numere. Este folosit pentru a converti valorile NULL la 0, astfel încât operatii aritmetice peste numere nu a returnat NULL

Funcția NVL2

NVL2 oferă mai multe funcționalități decât NVL, dar gestionează și valorile NULL. Testează valoarea unei coloane sau a unei expresii de orice tip pentru NULL. Dacă valoarea nu este NULL, atunci este returnat al doilea parametru, în caz contrar este returnat al treilea parametru, spre deosebire de funcția NVL, care în acest caz returnează valoarea inițială.

Funcția NVL2 are trei parametri obligatorii și sintaxa NVL2 (original, ifnotnull, ifnull), unde original este valoarea care trebuie verificată, ifnotnull este valoarea returnată dacă original nu este NULL și ifnull este valoarea returnată dacă original este NULL. Tipurile de date ale parametrilor ifnotnull și ifnull trebuie să fie compatibile și nu pot fi de tip LONG. Tipul de date returnat de funcția NVL2 este egal cu tipul de date al parametrului ifnotnull. Să ne uităm la câteva exemple

Interogarea 1: selectați nvl2 (1234, 1, „un șir”) din dual;

Interogarea 2: selectați nvl2 (null, 1234, 5678) din dual;

Interogarea 3: selectați nvl2 (substr (‘abc’, 2), ‘Not bc’, ‘No substring’) din dual;

Parametrul ifnotnull din interogarea 1 este un număr, iar parametrul ifnotnull este un șir. Deoarece tipurile de date sunt incompatibile, este returnată eroarea „ORA-01722: număr invalid”. Solicitarea doi returnează parametrul ifnull, deoarece originalul este NULL și rezultatul este 5678. Solicitarea trei utilizează funcția SUBSTR care returnează „bc” și apelează NVL2 („bc”, „Nu bc”, „Fără subșir”) - care returnează parametru ifnotnull - „Nu bc”.

Funcția NULLIF

Funcția NULLIF testează două valori pentru identitate. Dacă sunt aceleași, este returnat NULL, altfel primul parametru este returnat. Funcția NULLIF are doi parametri necesari și sintaxa NULLIF (ifunequal, comparison_item). Funcția compară doi parametri și dacă aceștia sunt identici - este returnat NULL, în caz contrar parametrul ifunequal. Luați în considerare cererile

Interogarea 1: selectați nullif (1234, 1234) din dual;

Interogarea unu returnează NULL deoarece parametrii sunt identici. Șirurile din interogarea 2 nu sunt convertite la data, ci comparate ca șiruri. Deoarece șirurile sunt de lungimi diferite, se returnează ifunequal 24-JUL-2009.

În Figura 10-4, funcția NULLIF este imbricată în funcția NVL2. La rândul său, funcția NULLIF utilizează funcțiile SUBSTR și UPPER ca parte a expresiei din parametrul ifunequal. Coloana EMAIL este comparată cu această expresie, care returnează prima literă a prenumelui concatenată cu numele de familie pentru angajații al căror prenume are 4 caractere. Când aceste valori sunt egale, NULLIF va returna NULL, iar valoarea va returna valoarea parametrului ifunequal. Aceste valori sunt folosite ca parametru pentru funcția NVL2. NVL2, la rândul său, returnează o descriere dacă elementele comparate se potrivesc sau nu.

Figura 10-4 - Utilizarea funcției NULLIF

Funcția COALESCE

Funcția COALESCE returnează prima valoare non-NULL din lista de parametri. Dacă toți parametrii sunt NULL, atunci este returnat NULL. Funcția COALESCE are doi parametri obligatorii și oricât de mulți parametri opționali doriți, și sintaxa COALESCE (expr1, expr2, ..., exprn) unde rezultatul este expr1 dacă expr nu este NULL, în caz contrar, expr2 este returnat dacă nu este NULL și așa mai departe. COALESCE este egal cu funcțiile NVL imbricate

COALESCE (expr1, expr2) = NVL (expr1, expr2)

COALESCE (expr1, expr2, expr3) = NVL (expr1, NVL (expr2, expr3))

Tipul de date al valorii returnate dacă este găsită o valoare non-NULL este egal cu tipul de date al primei valori non-NULL. Pentru a evita eroarea „ORA-00932: tipuri de date inconsistente”, toți parametrii non-NULL trebuie să fie compatibili cu primul parametru non-NULL. Să ne uităm la trei exemple

Interogarea 1: selectați coalesce (null, null, null, „un șir”) din dual;

Interogarea 2: selectați coalesce (null, null, null) din dual;

Interogarea 3: selectați coalesce (substr (‘abc’, 4), ‘Not bc’, ‘No substring’) din dual;

Interogarea 1 returnează al patrulea parametru: un șir, deoarece acesta este primul parametru non-NULL. Interogarea a doua returnează NULL deoarece toți parametrii sunt NULL. Interogarea 3 evaluează primul parametru, primește o valoare NULL și returnează al doilea parametru, deoarece este primul parametru non-NULL.

Parametrii funcției NVL2 pot fi confuzi dacă sunteți deja familiarizat cu funcția NVL. NVL (original, ifnull) returnează original dacă valoarea nu este NULL, în caz contrar, ifnull. NVL2 (original, ifnotnull, ifnull) returnează ifnotnull dacă originalul nu este NULL, altfel ifnull. Confuzia se datorează faptului că al doilea parametru al funcției NVL este ifnull, în timp ce în NVL2 este ifnotnull. Deci, nu vă bazați pe poziția parametrului în funcție.

Funcția DECODARE

Funcția DECODE implementează logica dacă-atunci-altfel verificând primii doi parametri pentru egalitate și returnând a treia valoare dacă sunt egali, sau altă valoare dacă nu sunt egali. Funcția DECODE are trei parametri necesari și sintaxa DECODE (expr1, comp1, iftrue1,,). Acești parametri sunt utilizați așa cum se arată în următorul exemplu de pseudocod

IF expr1 = comp1, atunci returnează iftrue1

Altfel, dacă expr1 = comp2, atunci returnează iftrue2

Altfel, dacă exprN = compN, atunci returnează iftrueN

Altfel returnează NULL | ifalse;

În primul rând, expr1 este comparată cu comp1. Dacă sunt egale, se returnează iftrue1. Dacă expr1 nu este egal cu comp1, ceea ce se întâmplă în continuare depinde dacă parametrii comp2 și iftrue2 sunt specificați. Dacă este dat, valoarea expr1 este comparată cu comp2. Dacă valorile sunt egale, atunci se returnează iftrue2. Dacă nu, atunci dacă există perechi de parametri compN, iftrueN, expr1 și compN sunt comparați și iftrueN este returnat dacă este egal. Dacă nu a fost găsită nicio potrivire în niciunul dintre seturile de parametri, atunci este returnat fie ifalse dacă acest parametru a fost specificat, fie NULL.

Toți parametrii din funcția DECODE pot fi expresii. Tipul returnat este egal cu tipul primului element de validare - parametrul comp 1. Expresie expr 1 este implicit convertibil la tipul de date al parametrului comp1. Toți ceilalți parametri comp disponibili 1 ... compN de asemenea, implicit convertibil în comp 1. DECODE tratează o valoare NULL ca fiind egală cu o altă valoare NULL, adică. dacă expr1 este NULL și comp3 este NULL și comp2 nu este NULL, atunci se returnează iftrue3. Să ne uităm la câteva exemple

Interogarea 1: selectați decodare (1234, 123, „123 este o potrivire”) din dual;

Interogarea 2: selectați decodare (1234, 123, „123 este o potrivire”, „Fără potrivire”) din dual;

Interogarea 3: selectați decodare („căutare”, „comp1”, „adevărat1”, „comp2”, „adevărat2”, „căutare”, „adevărat3”, substr („2căutare”, 2, 6), „adevărat4”, „ fals ') din dual;

Interogarea unu compară valoarea 1234 și 123. Deoarece acestea nu sunt egale, iftrue1 este ignorată și, deoarece nu este definită nicio valoare ifalse, este returnat NULL. Cererea doi este identică cu cererea 1, cu excepția faptului că este specificat ifalse. Deoarece 1234 nu este egal cu 123, atunci ifalse - „Fără potrivire” este returnat. Solicitarea trei verifică valorile parametrilor pentru a vedea dacă se potrivesc cu valoarea de căutare. Parametrii comp1 și comp2 nu sunt „căutare”, așa că rezultatele pentru iftrue1 și iftrue2 sunt omise. Potrivirea se găsește în a treia comparație a comp3 (poziția parametrului 6), iar valoarea returnată iftrue3 (parametrul 7) este „true3”. Deoarece a fost găsită o potrivire, nu mai sunt efectuate calcule. Adică, în ciuda faptului că valoarea lui comp4 (parametrul 8) se potrivește și cu expr1, această expresie nu este niciodată calculată deoarece a fost găsită o potrivire în comparația anterioară.

expresie CASE

Toate limbajele de programare din a treia și a patra generație implementează constructul caz. La fel ca și funcția DECODE, expresia CASE vă permite să implementați logica if-then-else. Există două opțiuni pentru utilizarea expresiei CASE. O expresie CASE simplă setează sursa să fie comparată o dată, apoi listează toate condițiile de testare necesare. CASE căutat evaluează ambele declarații pentru fiecare condiție.

Expresia CASE are trei parametri necesari. Sintaxa expresiei depinde de tip. Pentru o expresie CASE simplă, arată astfel

CASE search_expr

CÂND comparison_expr1 ATUNCI dacă adevărat1

)

Funcția TRUNC returnează numărul n, trunchiat la m zecimale. Parametrul m poate fi omis - în acest caz, n este trunchiat la un număr întreg.

SELECTARE TRUNC (100,25678) X1, TRUNC (-100,25678) X2, TRUNC (100,99) X3,

TRUNC (100.25678, 2) X4

DE LA DUAL

Funcția SIGN (n).

Funcția SIGN determină semnul unui număr. Dacă n este pozitiv, funcția returnează 1. Dacă n este negativ, este returnat -1. Dacă este egal cu zero, atunci este returnat 0. De exemplu:

SELECTARE SEMN (100.22) X1, SEMNUL (-100.22) X2, SEMNUL (0) X3

DE LA DUAL

O caracteristică interesantă a acestei funcții este capacitatea de a trece m egal cu zero - în acest caz, nu există o eroare de împărțire cu 0.

Funcția POWER (n, m).

Funcția POWER ridică n la puterea m. Gradul poate fi fracționat sau negativ, ceea ce extinde semnificativ capacitățile acestei funcții.

SELECTARE PUTEREA (10, 2) X1, PUTEREA (100, 1/2) X2,

PUTERE (1000, 1/3) X3, PUTERE (1000, -1/3) X4

DE LA DUAL

X1 X2 X3 X4
100 10 10 0,1

În unele cazuri, la apelarea acestei funcții, poate apărea o excepție. De exemplu:

SELECTARE PUTEREA (-100, 1/2) X2

DE LA DUAL

V acest caz se încearcă calcularea rădăcinii pătrate a unui număr negativ, ceea ce va avea ca rezultat eroarea ORA-01428 „Argument în afara intervalului”.

Funcția SQRT (n).

Această funcție se intoarce Rădăcină pătrată din numărul n. De exemplu:

SELECTAȚI SQRT (100) X

DE LA DUAL

Funcțiile EXP (n) și LN (n).

Funcția EXP ridică e la puterea lui n, iar funcția LN calculează logaritmul natural al lui n (unde n trebuie să fie mai mare decât zero). Exemplu:

SELECTARE EXP (2) X1, LN (1) X2, LN (EXP (2)) X3

Funcția TO_CHAR cu numere

Funcții pentru conversia datelor în alte tipuri de date. TO_CHAR (număr) convertește un număr în text. TO_NUMBER (șir) convertește textul în număr.

SELECT TO_CHAR (123) FROM DUAL va returna 12345, SELECT TO_NUMBER (`12345") FROM DUAL va returna 12345.

Lucru de laborator. Modificarea formatului numerelor afișate

Modificări ale formatului valorilor numerice în Oracle SQL, funcție TO_CHAR pentru lucrul cu valori numerice.

Exercițiu:

Scrieți o interogare care să afișeze informațiile despre prenume, prenume și salariu pentru angajați din tabelul hr.employees în formatul prezentat în Figura 1. 3.4-1:

Orez. 3.4 -1

În acest caz, datele trebuie sortate în așa fel încât primele rânduri să fie afișate pentru angajații cu cel mai mare salariu.

Notă:

Unele valori salariale din Fig. 3.4-1 au fost modificate, așa că este posibil să nu se potrivească cu valorile dvs.

Soluţie:

SELECTAȚI prenume AS „Prenume”, prenume Ca „Nume”, TO_CHAR (SALARY, „L999999999.99”) Ca „Salariu” FROM hr.employees ORDER BY SALARY DESC.

Funcțiile TO_NUMBER și TO_DATE

Funcție pentru conversia unui șir într-o dată TO_DATE (șir, format). Valorile posibile de format au fost deja discutate mai sus, așa că voi da câteva exemple de utilizare a acestei funcție. Exemple:

SELECTAȚI TO_DATE ("01.01.2010", `ZZ.LL.AAAA") DIN DUAL va returna data `01.01.2010";

SELECTAȚI TO_DATE ("01.JAN.2010", `ZZ.LUN.AAAA") DIN DUAL va returna data `01.01.2009";

SELECTAȚI TO_DATE ("15-01-10", `ZZ-LL-AA") DIN DUAL va returna data `15/01/2010".

Funcție de conversie a unui șir într-o valoare numerică TO_NUMBER (șir, format). Cele mai comune valori ale formatului sunt enumerate în tabel, așa că haideți să ne uităm la utilizarea acestei funcții prin exemple. Exemple:

SELECTAȚI TO_NUMBER (`100") DIN DUAL va returna numărul 100 SELECT TO_NUMBER (`0010.01", "9999D99") DIN DUAL va reveni 10.01;

SELECTAȚI TO_NUMBER ("500.000", "999G999") DIN DUAL va returna 500000.

Element RR în format de dată

Elementul de format de dată și oră RR este similar cu elementul de format de dată și oră YY, dar oferă o flexibilitate suplimentară pentru stocarea valorilor datei în alte secole. Elementul de format RR datetime vă permite să stocați date din secolul 20 până în secolul 21, specificând doar ultimele două cifre ale anului.

Dacă ultimele două cifre ale anului curent sunt de la 00 la 49, atunci anul returnat are aceleași primele două cifre ca anul curent.

Dacă ultimele două cifre ale anului curent sunt între 50 și 99, atunci primele 2 cifre ale anului returnat sunt cu 1 mai mari decât primele 2 cifre ale anului curent.

Dacă ultimele două cifre ale anului curent sunt de la 00 la 49, atunci primele 2 cifre ale anului returnat sunt cu 1 mai mici decât primele 2 cifre ale anului curent.

Dacă ultimele două cifre ale anului curent sunt între 50 și 99, atunci anul returnat are aceleași primele două cifre ca anul curent.

Funcția NVL

Funcția NVL este de obicei cea mai frecvent utilizată. Funcția ia doi parametri: NVL (expr1, exp2). Dacă primul parametru al expr1 nu este NULL, atunci funcția își returnează valoarea. Dacă primul parametru este NULL, atunci funcția returnează în schimb valoarea celui de-al doilea parametru exp2.

Exemplu: Selectați NVL (furnizor_oraș, n / a ") de la furnizori:

Declarația SQL de mai sus va returna n / "dacă furnizorul_city este nul, în caz contrar va returna supplier_city.

Un alt exemplu de utilizare a funcției NVL în Oracle / PLSQL este:

selectați supplier_id, NVL (furnizor_desc, furnizor_name) de la furnizori.

Această instrucțiune SQL va reveni numele furnizorului câmp dacă furnizor_desc conține o valoare nulă. Altfel se va întoarce furnizor_desc.

Un ultim exemplu: utilizarea funcției NVL în Oracle / PLSQL este: selectați NVL (comision, 0) din vânzări;

Această instrucțiune SQL a returnat 0 dacă comision câmpul conține o valoare nulă. Altfel, s-ar întoarce comision camp.

Conversii NVL pentru diferite tipuri de date

Funcția NVL este utilizată pentru a converti o valoare nedefinită într-o valoare reală: NVL ( expresia 1, expresia 2), Unde:

expresie 1- Valoarea originală sau calculată, care poate fi nedefinită.

expresie2- Valoarea care este înlocuită cu valoarea nedefinită.

Notă: Funcția NVL poate fi folosită pentru a converti orice tip de date, dar rezultatul va fi întotdeauna același tip ca expresie1.

Conversia NVL pentru diferite tipuri:

NUMĂR - NVL (coloană numerică, 9).

CHAR sau VARCHAR2 - NVL (simboluri | coloană,"Nu e disponibil").

Lucrări de laborator. Aplicarea funcției NVL

Funcția NVL pentru lucrul cu valori nule în Oracle SQL.

Exercițiu:

Scrieți o interogare care să afișeze informații despre numele și prenumele angajaților din tabelul hr.employees, precum și rata comisionului (coloana COMMISSION_PCT) pentru angajat. În acest caz, pentru acei angajați pentru care comisionul nu este definit, trebuie să afișați valoarea 0. Rezultatul interogării ar trebui să fie același cu cel prezentat în fig. 3,5-1.

Orez. 3.5 -1 (afișează valori începând cu rândul 51)

Soluţie:

Codul de solicitare corespunzător poate fi astfel:

SELECTAȚI prenumele AS „Prenumele”, numele de familie Ca „Numele de familie”, NVL (COMMISSION_PCT, 0) Ca „Rata comisionului” FROM hr.employees.

Funcția NVL

Funcția NVL este de obicei cea mai frecvent utilizată. Funcția ia doi parametri: NVL (expr1, expr2). Dacă primul parametru al expr1 nu este NULL, atunci funcția își returnează valoarea. Dacă primul parametru este NULL, atunci funcția returnează în schimb valoarea celui de-al doilea parametru expr2.

Considera exemplu practic... Câmpul COMM din tabelul EMP poate conține valori NULL. Când executați o interogare precum:

SELECTEAZĂ EMPNO, ENAME, COMM, NVL (COMM, 0) NVL_COMM

DE LA SCOTT.EMP

valoarea NULL va fi înlocuită cu zero. Rețineți că, dacă generați o valoare folosind o funcție, i se atribuie un alias. Rezultatele interogării vor arăta astfel:

EMPNO ENAME COMM NVL_COMM
7369 SMITH 0
7499 ALLEN 300 300
7521 WARD 500 500
7566 JONES 0
7654 MARTIN 1400 1400
7698 BLAKE 0
7782 CLARK 0
7839 REGE 0
7844 STRUNGAR 0 0
7900 JAMES 0
7902 VAD 0
7934 MILLER 0

funcția CEIL (n).

Funcția CEIL returnează cel mai mic număr întreg mai mare sau egal cu numărul n transmis ca parametru. De exemplu:

SELECTARE CEIL (100) X1, CEIL (-100) X2, CEIL (100.2) X3, CEIL (-100.2) X4

DE LA DUAL

Funcția TRUNC (n [, m])

Funcția TRUNC returnează numărul n, trunchiat la m zecimale. Parametrul m poate fi omis - în acest caz, n este trunchiat la un număr întreg.

SELECTARE TRUNC (100,25678) X1, TRUNC (-100,25678) X2, TRUNC (100,99) X3,

TRUNC (100.25678, 2) X4

DE LA DUAL

Funcția SIGN (n).

Funcția SIGN determină semnul unui număr. Dacă n este pozitiv, funcția returnează 1. Dacă n este negativ, este returnat -1. Dacă este egal cu zero, atunci este returnat 0. De exemplu:

SELECTARE SEMN (100.22) X1, SEMNUL (-100.22) X2, SEMNUL (0) X3

DE LA DUAL

O caracteristică interesantă a acestei funcții este capacitatea de a trece m egal cu zero - în acest caz, nu există o eroare de împărțire cu 0.

Funcția POWER (n, m).

Funcția POWER ridică n la puterea m. Gradul poate fi fracționat sau negativ, ceea ce extinde semnificativ capacitățile acestei funcții.

SELECTARE PUTEREA (10, 2) X1, PUTEREA (100, 1/2) X2,

PUTERE (1000, 1/3) X3, PUTERE (1000, -1/3) X4

DE LA DUAL

X1 X2 X3 X4
100 10 10 0,1

În unele cazuri, la apelarea acestei funcții, poate apărea o excepție. De exemplu:

SELECTARE PUTEREA (-100, 1/2) X2

DE LA DUAL

În acest caz, se încearcă calcularea rădăcinii pătrate a unui număr negativ, ceea ce va avea ca rezultat eroarea ORA-01428 „Argument în afara intervalului”.

Funcția SQRT (n).

Această funcție returnează rădăcina pătrată a lui n. De exemplu:

SELECTAȚI SQRT (100) X

DE LA DUAL

Funcțiile EXP (n) și LN (n).

Funcția EXP ridică e la puterea lui n, iar funcția LN calculează logaritmul natural al lui n (unde n trebuie să fie mai mare decât zero). Exemplu:

SELECTARE EXP (2) X1, LN (1) X2, LN (EXP (2)) X3