Documente Academic
Documente Profesional
Documente Cultură
___________________________________________________________________________
• Funcții de tip single-row (sau scalare). O funcție single-row întoarce un singur rezultat
pentru fiecare rând al tabelei interogate sau view
• Funcții de grup (sau agregate). O funcție de grup întoarce un singur rezultat pentru un
grup de rânduri interogate. Funcțiile de grup pot apare în clauza HAVING.
FUNCTII SINGLE-ROW
Pagina 1 din 6
BAZE DE DATE – SEMINAR 6
___________________________________________________________________________
9. Să se afișeze comenzile, data încheierii comenzilor, numărul de luni între data curentă
și data încheierii, următoarea zi de vineri după data încheierii, ultima zi din luna din care
face parte data încheierii, precum și data corespunzătoare după 2 luni de la data încheierii
comenzii
SELECT id_comanda, data, round(MONTHS_BETWEEN(sysdate, data)) luni,
NEXT_DAY(data, 'FRIDAY'), LAST_DAY(data),ADD_MONTHS(data,2)
FROM comenzi;
Pagina 2 din 6
BAZE DE DATE – SEMINAR 6
___________________________________________________________________________
Funcții de conversie
Funcția TO_CHAR
Funcția TO_DATE
Pagina 3 din 6
BAZE DE DATE – SEMINAR 6
___________________________________________________________________________
Funcția EXTRACT()
NVL2
17. Să se afișeze angajații care au comision (1) si pe cei care nu au comision (0).
SELECT nume, NVL2(comision, 1, 0)
FROM angajati;
NULLIF - returnează NULL dacă două expresii sunt egale, în caz contrar, returnează prima
expresie
18. Să se afișeze lungimea numelui, lungimea prenumelui, daca acestea sunt egale sa se
returneze nul ca rezultat, iar daca nu sunt egale se va returna lungimea numelui.
SELECT nume, LENGTH(nume), prenume, LENGTH(prenume),
NULLIF(LENGTH(nume), LENGTH(prenume)) rezultat
FROM angajati;
Pagina 4 din 6
BAZE DE DATE – SEMINAR 6
___________________________________________________________________________
FUNCŢII DE GRUP
Exemple:
1. Să se afișeze valoarea medie, valoarea maximă, valoarea minimă și valoarea totală a
produselor comandate:
2. Să se afișeze data primei comenzi încheiate și data celei mai vechi comenzi încheiate:
Pagina 5 din 6
BAZE DE DATE – SEMINAR 6
___________________________________________________________________________
7. Să se afișeze cantitatea medie vândută din fiecare produs. Să se ordoneze după cantitate
(se utilizează funcția AVG() și clauza GROUP BY pentru gruparea datelor în funcție de
id_ul produsului, iar ordonarea se realizează cu ajutorul funcției ORDER BY).
8. Să se afișeze produsele și cantitatea medie vândută numai pentru acele produse a căror
cantitate medie este mai mare de 25 (condiția se specifica în clauza HAVING și nu în
clauza WHERE deoarece este utilizata funcția de grup AVG și condiția este
AVG(cantitate)>25).
10. Să se afișeze numai comenzile care au valoarea cuprinsă între 1000 și 3000 (condiția va
fi menționată în clauza HAVING deoarece se utilizează funcția de grup SUM):
Pagina 6 din 6