Nvl sql opis. NVL konverzije za različite tipove podataka

Dotaknuli smo se ugniježđenih funkcija malo ranije, sada ćemo ih detaljnije razmotriti. Također ćemo pogledati funkcije za rad s NULL vrijednostima i funkcije koje pomažu u implementaciji operacije grananja u upitu.

Ugniježđene funkcije

Ugniježđene funkcije koriste povratnu vrijednost jedne funkcije kao ulazni parametar za drugu funkciju. Funkcije uvijek vraćaju samo jednu vrijednost. Stoga, rezultat poziva funkcije možete tretirati kao literalnu vrijednost kada ga koristite kao parametar za poziv drugoj funkciji. Inline funkcije mogu biti ugniježđene na bilo kojem nivou ugniježđenja. Jedan poziv funkcije izgleda ovako

Funkcija1 (parametar1, parametar2,…) = rezultat

Zamjena parametra funkcije pozivom druge funkcije može rezultirati izrazima poput

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

Ugniježđene funkcije se prvo evaluiraju prije nego što se njihovi rezultati koriste kao inputi za druge funkcije. Funkcije se procjenjuju od najdubljeg nivoa gniježđenja do najvišeg, s lijeva na desno. Prethodni izraz se izvršava na sljedeći način

  1. Funkcija F3 (param1) se izračunava i povratna vrijednost se koristi kao treći parametar za funkciju 2, nazovimo je param2.
  2. Zatim se izračunava funkcija F2 (param1, param2.2, param2.3) i povratna vrijednost se koristi kao drugi parametar funkcije F1 - param1.2
  3. Konačno, funkcija F1 (param1, param2, param1.3) se evaluira i vraća u program koji poziva.

Dakle, funkcija F3 je na trećem nivou gniježđenja.

Razmotrite zahtjev

odaberite sljedeći_dan (zadnji_dan (sysdate) -7, 'uto') iz dual;

  1. U ovom zahtjevu postoje tri funkcije, odozdo prema gore - SYSDATE, LAST_DAY, NEXT_DAY. Zahtjev se izvršava na sljedeći način
  2. Najgniježđenija funkcija SYSDATE se izvršava. Vraća trenutno sistemsko vrijeme. Pretpostavimo da je trenutni datum 28. oktobar 2009
  3. Zatim se izračunava rezultat funkcije drugog nivoa LAST_DAY. LAST_DATE ('28 -OCT-2009 ') vraća posljednji dan oktobra 2009., a to je 31. oktobar 2009.
  4. Tada se od ovog datuma oduzima sedam dana - ispada 24. oktobar.
  5. Konačno, funkcija NEXT_DAY ('24 -OCT-2009 ',' uto ') se evaluira, a upit se vraća posljednjeg utorka u listopadu - što je u našem primjeru 27-OCT-2009.

Dovoljno je teško razumjeti i izgraditi složene izraze koristeći mnoge ugniježđene pozive funkcija, ali to dolazi s vremenom i vježbom. Takve izraze možete podijeliti na dijelove i testirati ih zasebno. DUAL tablica je vrlo korisna za testiranje upita i poziva funkcija. Možete testirati i otklanjati greške u malim komponentama, koje se zatim mogu kombinovati u jedan veliki, željeni izraz.

Funkcije grananja

Funkcije grananja, poznate i kao IF-THEN-ELSE, koriste se za određivanje putanje izvršenja na osnovu nekih okolnosti. Funkcije grananja vraćaju različite rezultate na osnovu rezultata evaluacije stanja. U grupi takvih funkcija razlikuju se funkcije za rad sa NULL vrijednošću: NVL, NVL2, NULLIF i COALESCE. I također uobičajene funkcije predstavljene funkcijom DECODE i izrazom CASE. Funkcija DECODE je Oracle funkcija, dok je izraz CASE prisutan u ANSI SQL standardu.

NVL funkcija

Funkcija NVL testira vrijednost stupca ili izraza bilo kojeg tipa podataka za NULL. Ako je vrijednost NULL, vraća alternativnu zadanu vrijednost koja nije NULL; u suprotnom, vraća se originalna vrijednost.

NVL funkcija ima dva potrebna parametra, a sintaksa je NVL (original, ifnull) gdje je original originalna vrijednost koju treba provjeriti, a ifnull je rezultat koji funkcija vraća ako je original NULL. Tip podataka ifnull i originalnih parametara mora biti kompatibilan. Odnosno, ili tip podataka mora biti isti ili mora biti moguće implicitno pretvoriti vrijednosti iz jednog tipa u drugi. NVL funkcija vraća vrijednost istog tipa podataka kao tip podataka originalnog parametra. Razmotrite tri zahtjeva

Upit 1: odaberite nvl (1234) iz dual;

Upit 2: odaberite nvl (null, 1234) iz dual;

Upit 3: odaberite nvl (substr ('abc', 4), 'Ne postoji podniz') iz dual;

Budući da NVL funkcija zahtijeva dva parametra, upit 1 će vratiti grešku ORA-00909: nevažeći broj argumenata. Upit 2 će vratiti 1234 pošto je NULL označeno i ono je NULL. Upit tri koristi ugniježđenu funkciju SUBSTR koja pokušava izdvojiti četvrti znak iz niza od tri znaka, vraća NULL, a funkcija NVL vraća niz 'Ne postoji sbustring'.

Funkcija NVL je vrlo korisna kada radite s brojevima. Koristi se za pretvaranje NULL vrijednosti u 0 tako da aritmetičke operacije preko brojeva nije vratio NULL

NVL funkcija2

NVL2 pruža više funkcionalnosti od NVL-a, ali također rukuje NULL vrijednostima. Testira vrijednost stupca ili izraza bilo kojeg tipa za NULL. Ako vrijednost nije NULL, onda se vraća drugi parametar, u suprotnom se vraća treći parametar, za razliku od NVL funkcije, koja u ovom slučaju vraća originalnu vrijednost.

Funkcija NVL2 ima tri potrebna parametra i sintaksu NVL2 (original, ifnotnull, ifnull), gdje je original vrijednost koju treba provjeriti, ifnotnull je vrijednost vraćena ako original nije NULL, a ifnull je vrijednost vraćena ako je original NULL. Tipovi podataka parametara ifnotnull i ifnull moraju biti kompatibilni i ne mogu biti tipa LONG. Tip podataka koji vraća funkcija NVL2 jednak je tipu podataka parametra ifnotnull. Pogledajmo neke primjere

Upit 1: odaberite nvl2 (1234, 1, 'string') iz dual;

Upit 2: odaberite nvl2 (null, 1234, 5678) iz dual;

Upit 3: odaberite nvl2 (substr (‘abc’, 2), ‘Not bc’, ‘No substring’) iz dual;

Parametar ifnotnull u upitu 1 je broj, a parametar ifnull je niz. Pošto su tipovi podataka nekompatibilni, vraća se greška “ORA-01722: nevažeći broj”. Zahtjev dva vraća parametar ifnull, budući da je original NULL, a rezultat je 5678. Zahtjev tri koristi funkciju SUBSTR koja vraća 'bc' i poziva NVL2 ('bc', 'Not bc', 'No substring') - koja vraća ifnotnull parametar - 'Ne bc'.

NULLIF funkcija

Funkcija NULLIF testira dvije vrijednosti za identitet. Ako su isti, vraća se NULL, inače se vraća prvi parametar. Funkcija NULLIF ima dva potrebna parametra i NULLIF sintaksu (ifunequal, compare_item). Funkcija uspoređuje dva parametra i ako su identični - vraća se NULL, u suprotnom parametar ifunequal. Razmotrite zahtjeve

Upit 1: odaberite nullif (1234, 1234) iz dual;

Upit jedan vraća NULL jer su parametri identični. Nizovi u upitu 2 se ne konvertuju u datum, već se upoređuju kao nizovi. Budući da su žice različite dužine, vraća se ifunequal 24-JUL-2009.

Na slici 10-4, funkcija NULLIF je ugniježđena unutar funkcije NVL2. Funkcija NULLIF zauzvrat koristi funkcije SUBSTR i UPPER kao dio izraza u parametru ifunequal. Kolona EMAIL se upoređuje sa ovim izrazom, koji vraća prvo slovo imena spojeno s prezimenom za zaposlenike čije ime ima 4 znaka. Kada su ove vrijednosti jednake, NULLIF će vratiti NULL, a vrijednost će vratiti vrijednost parametra ifunequal. Ove vrijednosti se koriste kao parametar za funkciju NVL2. NVL2, zauzvrat, vraća opis da li se upoređene stavke podudaraju ili ne.

Slika 10-4 - Upotreba funkcije NULLIF

Funkcija COALESCE

Funkcija COALESCE vraća prvu vrijednost koja nije NULL s liste parametara. Ako su svi parametri NULL, onda se vraća NULL. Funkcija COALESCE ima dva obavezna parametra i onoliko neobaveznih parametara koliko želite, i COALESCE sintaksu (expr1, expr2, ..., exprn) gdje je rezultat expr1 ako izraz nije NULL, inače se vraća expr2 ako nije NULL i tako dalje. COALESCE je jednak ugniježđenim NVL funkcijama

SPAJANJE (izraz1, ekspr2) = NVL (izraz1, ekspr2)

SPAJANJE (izraz1, ekspr2, ekspr3) = NVL (izraz1, NVL (izraz2, ekspr3))

Tip podataka povratne vrijednosti ako je pronađena vrijednost koja nije NULL jednaka je tipu podataka prve vrijednosti koja nije NULL. Da biste izbjegli grešku 'ORA-00932: nedosljedni tipovi podataka', svi parametri koji nisu NULL moraju biti kompatibilni s prvim parametrom koji nije NULL. Pogledajmo tri primjera

Upit 1: odaberite spojiti (null, null, null, 'a string') iz dual;

Upit 2: odaberite spojiti (null, null, null) iz dual;

Upit 3: odaberite spajanje (substr (‘abc’, 4), ‘Not bc’, ‘No substring’) iz dual;

Upit 1 vraća četvrti parametar: string, budući da je ovo prvi parametar koji nije NULL. Upit dva vraća NULL jer su svi parametri NULL. Upit 3 procjenjuje prvi parametar, dobiva NULL vrijednost i vraća drugi parametar, budući da je to prvi parametar koji nije NULL.

Parametri funkcije NVL2 mogu biti zbunjujući ako ste već upoznati s funkcijom NVL. NVL (original, ifnull) vraća original ako vrijednost nije NULL, u suprotnom ifnull. NVL2 (original, ifnotnull, ifnull) vraća ifnotnull ako original nije NULL, inače ifnull. Zabuna je nastala zbog činjenice da je drugi parametar funkcije NVL ifnull, dok je u NVL2 ifnotnull. Dakle, nemojte se oslanjati na poziciju parametra u funkciji.

DECODE funkcija

Funkcija DECODE implementira if-then-else logiku provjeravanjem prva dva parametra na jednakost i vraćanjem treće vrijednosti ako su jednaki, ili druge vrijednosti ako nisu jednaki. Funkcija DECODE ima tri potrebna parametra i DECODE sintaksu (expr1, comp1, iftrue1,,). Ovi parametri se koriste kao što je prikazano u sljedećem primjeru pseudokoda

IF expr1 = comp1 onda vrati iftrue1

Inače ako je izraz1 = comp2 onda vrati iftrue2

Inače ako je exprN = compN onda vrati iftrueN

Inače vrati NULL | iffalse;

Prvo, expr1 se upoređuje sa comp1. Ako su jednaki, vraća se iftrue1. Ako izraz1 nije jednak comp1, ono što se dalje događa ovisi o tome jesu li specificirani parametri comp2 i iftrue2. Ako je data, vrijednost expr1 se upoređuje sa comp2. Ako su vrijednosti jednake, onda se vraća iftrue2. Ako ne, onda ako postoje parovi parametara compN, iftrueN, expr1 i compN se uspoređuju i iftrueN se vraća ako je jednako. Ako nije pronađeno podudaranje ni u jednom od skupova parametara, tada se vraća iffalse ako je ovaj parametar naveden ili NULL.

Svi parametri u funkciji DECODE mogu biti izrazi. Tip povratka je jednak tipu prvog elementa za provjeru valjanosti - parametra comp 1. Izraz ekspr 1 se implicitno pretvara u tip podataka parametra comp1. Svi ostali dostupni comp parametri 1 ... kompN također implicitno konvertibilan u komp 1. DECODE tretira NULL vrijednost kao jednaku drugoj NULL vrijednosti, tj. ako je expr1 NULL, a comp3 je NULL, a comp2 nije NULL, tada se vraća iftrue3. Pogledajmo neke primjere

Upit 1: odaberite dekodiranje (1234, 123, '123 se podudara') iz dual;

Upit 2: odaberite dekodiranje (1234, 123, '123 se podudara', 'Nema podudaranja') iz dual;

Upit 3: odaberite dekodiranje ('search', 'comp1', 'true1', 'comp2', 'true2', 'search', 'true3', substr ('2search', 2, 6), 'true4', ' false ') od dual;

Upit jedan upoređuje vrijednost 1234 i 123. Pošto nisu jednake, iftrue1 se zanemaruje, a pošto nije definirana vrijednost iffalse, vraća se NULL. Zahtjev dva je identičan zahtjevu 1 osim što je navedeno iffalse. Pošto 1234 nije jednako 123, onda se vraća iffalse - 'Nema podudaranja'. Zahtjev tri provjerava vrijednosti parametara da vidi da li odgovaraju vrijednosti pretraživanja. Parametri comp1 i comp2 nisu 'pretraga' pa se rezultati iftrue1 i iftrue2 preskaču. Podudaranje se nalazi u trećem poređenju comp3 (pozicija parametra 6), a povratna vrijednost iftrue3 (parametar 7) je 'true3'. Pošto je pronađeno podudaranje, daljnji proračuni se ne vrše. To jest, uprkos činjenici da se vrijednost comp4 (parametar 8) također poklapa sa expr1, ovaj izraz se nikada ne izračunava jer je pronađeno podudaranje u prethodnom poređenju.

CASE izraz

Svi programski jezici treće i četvrte generacije implementiraju case konstrukciju. Kao i funkcija DECODE, izraz CASE vam omogućava da implementirate if-then-else logiku. Postoje dvije opcije za korištenje izraza CASE. Jednostavan CASE izraz postavlja izvor koji će se jednom uporediti, a zatim navodi sve potrebne uslove testiranja. Traženi CASE procjenjuje obje izjave za svaki uvjet.

Izraz CASE ima tri potrebna parametra. Sintaksa za izraz zavisi od tipa. Za jednostavan CASE izraz, to izgleda ovako

CASE search_expr

KADA usporedba_izraz1 ONDA iftrue1

)

Funkcija TRUNC vraća broj n, skraćen na m decimalnih mjesta. Parametar m se može izostaviti - u ovom slučaju, n se skraćuje na cijeli broj.

SELECT TRUNC (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100.99) X3,

TRUNC (100.25678, 2) X4

FROM DUAL

SIGN (n) funkcija

Funkcija SIGN određuje predznak broja. Ako je n pozitivno, funkcija vraća 1. Ako je n negativan, vraća se -1. Ako je jednako nuli, onda se vraća 0. Na primjer:

ODABIR ZNAK (100,22) X1, ZNAK (-100,22) X2, ZNAK (0) X3

FROM DUAL

Zanimljiva karakteristika ove funkcije je mogućnost da se prenese m jednako nuli - u ovom slučaju nema greške dijeljenja sa 0.

POWER (n, m) funkcija

Funkcija POWER podiže n na m stepen. Stepen može biti razlomak ili negativan, što značajno proširuje mogućnosti ove funkcije.

ODABIR NAPAJANJE (10, 2) X1, NAPAJANJE (100, 1/2) X2,

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

FROM DUAL

X1 X2 X3 X4
100 10 10 0,1

U nekim slučajevima, prilikom pozivanja ove funkcije, može doći do izuzetka. Na primjer:

ODABIR SNAGE (-100, 1/2) X2

FROM DUAL

V ovaj slučaj pokušava se izračunati kvadratni korijen negativnog broja, što će rezultirati greškom ORA-01428 "Argument izvan opsega".

SQRT (n) funkcija

Ova funkcija vraća Kvadratni korijen od broja n. Na primjer:

ODABIR SQRT (100) X

FROM DUAL

EXP (n) i LN (n) funkcije

Funkcija EXP podiže e na stepen n, a LN funkcija izračunava prirodni logaritam od n (gdje n mora biti veće od nule). primjer:

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

TO_CHAR funkcija s brojevima

Funkcije za pretvaranje podataka u druge tipove podataka. TO_CHAR (broj) pretvara broj u tekst. TO_NUMBER (niz) pretvara tekst u broj.

SELECT TO_CHAR (123) FROM DUAL će vratiti 12345, SELECT TO_NUMBER (`12345") FROM DUAL će vratiti 12345.

Laboratorijski rad. Promjena formata prikazanih brojeva

Promjene u formatu numeričkih vrijednosti u Oracle SQL-u, funkcija TO_CHAR za rad s numeričkim vrijednostima.

vježba:

Napišite upit koji prikazuje ime, prezime i podatke o plaći za zaposlenike iz tabele hr.employees u formatu prikazanom na slici 1. 3.4-1:

Rice. 3.4 -1

U tom slučaju podatke treba sortirati na način da se prvi redovi prikazuju za zaposlene sa najvećom platom.

Bilješka:

Neke vrijednosti plata na sl. 3.4-1 su promijenjeni, tako da možda neće odgovarati vašim vrijednostima.

Rješenje:

SELECT ime_ime KAO "Ime", prezime Kao "Prezime", TO_CHAR (PLATA, "L999999999.99") Kao "Plata" OD hr.zaposlenika RED PO OPIS PLATE.

TO_NUMBER i TO_DATE funkcije

Funkcija za pretvaranje stringa u datum TO_DATE (string, format). Moguće vrijednosti formata su već razmotrene gore, pa ću dati nekoliko primjera korištenja ove funkcije. primjeri:

SELECT DO_DATE ("01.01.2010", `DD.MM.GGGG") OD DUAL će vratiti datum `01.01.2010";

SELECT DO_DATE ("01.JAN.2010", `DD.MON.YYYY") OD DUAL će vratiti datum `01.01.2009";

SELECT DO_DATE ("15-01-10", `DD-MM-GG") OD DUAL će vratiti datum `01/15/2010".

Funkcija za pretvaranje stringa u numeričku vrijednost TO_NUMBER (string, format). Najčešće vrijednosti formata navedene su u tabeli, pa pogledajmo korištenje ove funkcije na primjerima. primjeri:

SELECT TO_NUMBER (`100") OD DUAL će vratiti broj 100 SELECT TO_NUMBER (`0010.01", "9999D99") OD DUAL će se vratiti 10.01;

SELECT TO_NUMBER ("500,000", "999G999") OD DUAL će vratiti 500000.

RR element u formatu datuma

Element formata datuma i vremena RR sličan je elementu formata datuma i vremena YY, ali pruža dodatnu fleksibilnost za pohranjivanje vrijednosti datuma u drugim stoljećima. Element formata datuma i vremena RR omogućava vam da pohranite datume od 20. stoljeća do 21. stoljeća tako što ćete navesti samo posljednje dvije cifre godine.

Ako su posljednje dvije znamenke tekuće godine od 00 do 49, tada vraćena godina ima iste prve dvije znamenke kao i tekuća godina.

Ako su posljednje dvije znamenke tekuće godine između 50 i 99, tada su prve 2 cifre vraćene godine za 1 veće od prve 2 znamenke tekuće godine.

Ako su posljednje dvije cifre tekuće godine od 00 do 49, tada su prve 2 cifre vraćene godine za 1 manje od prve 2 znamenke tekuće godine.

Ako su posljednje dvije znamenke tekuće godine između 50 i 99, tada vraćena godina ima iste prve dvije znamenke kao i tekuća godina.

NVL funkcija

NVL funkcija je obično najčešće korištena. Funkcija uzima dva parametra: NVL (expr1, exp2). Ako prvi parametar expr1 nije NULL, tada funkcija vraća njegovu vrijednost. Ako je prvi parametar NULL, tada funkcija umjesto toga vraća vrijednost drugog parametra exp2.

Primjer: Odaberite NVL (supplier_city, n / a ") od dobavljača:

Gornji SQL izraz će vratiti n / "ako je supplier_city null, u suprotnom će vratiti supplier_city.

Još jedan primjer korištenja NVL funkcije u Oracle / PLSQL je:

odaberite Supplier_id, NVL (supplier_desc, supplier_name) od dobavljača.

Ovaj SQL izraz će se vratiti Dobavljač Ime polje if dobavljač_desc sadrži null vrijednost. U suprotnom će se vratiti dobavljač_desc.

Konačni primjer: korištenje NVL funkcije u Oracle / PLSQL je: odaberite NVL (provizija, 0) iz prodaje;

Ovaj SQL izraz vratio je 0 if provizija polje sadrži nultu vrijednost. U suprotnom bi se vratilo provizija polje.

NVL konverzije za različite tipove podataka

NVL funkcija se koristi za pretvaranje nedefinirane vrijednosti u stvarnu vrijednost: NVL ( izraz1, izraz 2), gdje:

izraz1- Originalna ili izračunata vrijednost, koja može biti nedefinirana.

izraz2- Vrijednost koja je zamijenjena nedefiniranom vrijednošću.

Bilješka: NVL funkcija se može koristiti za pretvaranje bilo kojeg tipa podataka, ali rezultat će uvijek biti istog tipa kao izraz1.

Pretvaranje NVL-a za različite tipove:

BROJ - NVL (numerička kolona, 9).

CHAR ili VARCHAR2 - NVL (simboli | kolona,"Nije dostupno").

Laboratorijski rad. Primjena NVL funkcije

NVL funkcija za rad sa null vrijednostima u Oracle SQL-u.

vježba:

Napišite upit koji prikazuje podatke o imenima i prezimenima zaposlenih iz hr.zaposlenih.Tabelu, kao i stopu provizije (stupac COMMISSION_PCT) za zaposlenog. U ovom slučaju, za one zaposlene za koje nije definisana provizija, potrebno je prikazati vrijednost 0. Rezultat upita bi trebao biti isti kao što je prikazano na sl. 3.5-1.

Rice. 3.5 -1 (prikazuje vrijednosti počevši od 51. reda)

Rješenje:

Odgovarajući kod zahtjeva može biti ovakav:

SELECT first_name AS “Ime”, prezime Kao “Prezime”, NVL (COMMISSION_PCT, 0) Kao “Stopa provizije” OD hr.zaposlenih.

NVL funkcija

NVL funkcija je obično najčešće korištena. Funkcija uzima dva parametra: NVL (expr1, expr2). Ako prvi parametar expr1 nije NULL, tada funkcija vraća njegovu vrijednost. Ako je prvi parametar NULL, tada funkcija umjesto toga vraća vrijednost drugog parametra expr2.

Razmislite praktični primjer... COMM polje u EMP tabeli može sadržavati NULL vrijednosti. Prilikom izvršavanja upita kao što je:

ODABIR EMPNO, ENAME, COMM, NVL (COMM, 0) NVL_COMM

OD SCOTT.EMP

NULL vrijednost će biti zamijenjena nulom. Imajte na umu da ako generirate vrijednost pomoću funkcije, njoj se dodjeljuje pseudonim. Rezultati upita će izgledati ovako:

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 KING 0
7844 TURNER 0 0
7900 JAMES 0
7902 FORD 0
7934 MILLER 0

CEIL (n) funkcija

Funkcija CEIL vraća najmanji cijeli broj veći ili jednak broju n koji je proslijeđen kao parametar. Na primjer:

ODABIR CEIL (100) X1, CEIL (-100) X2, CEIL (100,2) X3, CEIL (-100,2) X4

FROM DUAL

TRUNC funkcija (n [, m])

Funkcija TRUNC vraća broj n, skraćen na m decimalnih mjesta. Parametar m se može izostaviti - u ovom slučaju, n se skraćuje na cijeli broj.

SELECT TRUNC (100.25678) X1, TRUNC (-100.25678) X2, TRUNC (100.99) X3,

TRUNC (100.25678, 2) X4

FROM DUAL

SIGN (n) funkcija

Funkcija SIGN određuje predznak broja. Ako je n pozitivno, funkcija vraća 1. Ako je n negativan, vraća se -1. Ako je jednako nuli, onda se vraća 0. Na primjer:

ODABIR ZNAK (100,22) X1, ZNAK (-100,22) X2, ZNAK (0) X3

FROM DUAL

Zanimljiva karakteristika ove funkcije je mogućnost da se prenese m jednako nuli - u ovom slučaju nema greške dijeljenja sa 0.

POWER (n, m) funkcija

Funkcija POWER podiže n na m stepen. Stepen može biti razlomak ili negativan, što značajno proširuje mogućnosti ove funkcije.

ODABIR NAPAJANJE (10, 2) X1, NAPAJANJE (100, 1/2) X2,

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

FROM DUAL

X1 X2 X3 X4
100 10 10 0,1

U nekim slučajevima, prilikom pozivanja ove funkcije, može doći do izuzetka. Na primjer:

ODABIR SNAGE (-100, 1/2) X2

FROM DUAL

U ovom slučaju se pokušava izračunati kvadratni korijen negativnog broja, što će rezultirati greškom ORA-01428 "Argument izvan opsega".

SQRT (n) funkcija

Ova funkcija vraća kvadratni korijen od n. Na primjer:

ODABIR SQRT (100) X

FROM DUAL

EXP (n) i LN (n) funkcije

Funkcija EXP podiže e na stepen n, a LN funkcija izračunava prirodni logaritam od n (gdje n mora biti veće od nule). primjer:

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