Sunteți pe pagina 1din 2

Functii de uz general

NVL(val1,val2) functia returneaza val1 daca aceasta este nenula si valoarea val2 daca val1 este NULL. Val1 si val2 trebuie sa fie de acelasi tip( tip char, numeric sau data calendaristica). select nume, comision, NVL(comision,0.8) from ANGAJATI4 where cod between 140 and 150 NUME COMISION NVL(COMISION,0.8) DANI 0,2 0,2 SAVA 0,8 ANTON 0,9 0,9 NECULAI 0,8 NVL2(val1,val2,val3) daca val1 nu este nula, atunci functia va returna val2, iar daca val1 are valoarea NULL, atunci functia va returna val3 select nume, comision, NVL2(comision,'ARE','NU ARE') from ANGAJATI4 NUME COMISION NVL2(COMISION,'ARE','NUARE') POP NU ARE IONESCU NU ARE DANI 0,2 ARE SAVA NU ARE ANTON 0,9 ARE NECULAI NU ARE ION NU ARE ANDRICI 0,2 ARE NULLIF(expr1,expr2) daca cele doua expresii sunt egale, functia returneaza NULL. Daca valorile celor doua expresii sunt diferite atunci functia returneaza valoarea primei expresii. select nume,prenume, NULLIF(length(nume),length(prenume)) from ANGAJATI4 NUME PRENUME NULLIF(LENGTH(NUME),LENGTH(PRENUME)) POP MARIA 3 IONESCU VALERIA DANI IOANA 4 SAVA MIHAI 4 ANTON DAN 5 NECULAI LUCIAN 7 ION ION ANDRICI ANASTASIA 7 BUBU CUBI COALESCE(expr1,expr2, ... , exprn) functia returneaza valoarea primei expresii nenule. select coalesce(null, null, '13','simulare') from DUAL

Ex:

Ex:

Ex:

EX:

COALESCE(NULL,NULL,'13','SIMULARE') 13

Functii si expresii conditionale


DECODE(expresie, val11, val12, val21, val22, ... , valn1, valn2, val) compara valoarea expresiei cu valorile val11, val21, ... , valn1. Daca valoarea expresiei este egala cu vali1, atunci functia returneaza vali2. Daca expresia nu este egala cu nici una dintre valorile vali1, atunci functia va returna valoarea val.

Ex: select decode('Maria', 'Dana','Ea este Ana', 'Maria','Ea este Maria','Nu e nici Ana nici Maria') from DUAL DECODE('MARIA','DANA','EAESTEANA','MARIA','EAESTEMARIA','NUENICIANANICIMARIA') Ea este Maria Ex: select decode('Valeria', 'Dana','Ea este Ana', 'Maria','Ea este Maria','Nu e nici Ana nici Maria') from DUAL DECODE('VALERIA','DANA','EAESTEANA','MARIA','EAESTEMARIA','NUENICIANANICIMARIA') Nu e nici Ana nici Maria In locul functiei DECODE se poate folosi expresia conditionala CASE. select CASE 'Maria' WHEN 'Dana' THEN 'Ea este Ana' WHEN 'Maria' THEN 'Ea este Maria' ELSE 'Nu e nici Ana nici Maria' END from DUAL CASE'MARIA'WHEN'DANA'THEN'EAESTEANA'WHEN'MARIA'THEN'EAESTEMARIA'ELSE'NUENICIANANI CIMARIA'END Ea este Maria select CASE 'Valeria' WHEN 'Dana' THEN 'Ea este Ana' WHEN 'Maria' THEN 'Ea este Maria' ELSE 'Nu e nici Ana nici Maria' END from DUAL CASE'VALERIA'WHEN'DANA'THEN'EAESTEANA'WHEN'MARIA'THEN'EAESTEMARIA'ELSE'NUENICIANA NICIMARIA'END Nu e nici Ana nici Maria

S-ar putea să vă placă și