CATEGORII DOCUMENTE |
SORTAREA DATELOR - ORACLE
Urmatoarele clauze sunt inchise in comanda SELECT:
SELECT [DISTINCT] [*,coloana alias],]
FROM tabela
WHERE conditie(ii)
ORDER BY [coloana,expr] [ASC/DESC];
ASC
ordinea ascendenta este ordinea de sortara ( implicita) si nu trebuie specificat.
DESC
inverseaza ordinea de sortare de default si trebuie specificat dupa un nume de coloana.
Clauzele pot fi introduse pe linii separate in buffer si tabelarea este utilizata pentru claritate si in editare.
Clauza ORDER BY
In mod normal ordinea rindurilor intoarse in rezultatul unei cereri este nedefinita .Clauza ORDER BY poate fi utilizata pentru a sorta rindurile.
Daca o folosim, clauza ORDEY BY trebuie sa fie intotdeauna ultima in declaratia SELECT.
Pentru a sorta dupa ENAME, introduceti:
SELECT ENAME,JOB,SAL*12,DEPTNO
FROM EMP
ORDER BY ENAME;
ENAME JOB SAL*12 DEPTNO
--------- ------- -------- ------
ALLEN SALESMAN 19200 30
BLAKE MANAGER 34200 30
FORD ANALYST 36000 20
JAMES CLERK 11400 30
JONES MANAGER 35700 20
KING PRESIDENT 60000 10
MARTIN SALESMAN 15000 30
MILLER CLERK 15600 10
SCOTT ANALYST 36000 20
SMITH CLERK 9600 20
TURNER SALESMAN 18000 30
WARD SALESMAN 15000 30
Ordonarea de default a datelor
Ordinea sortarii de default este ascendenta:
Inversarea ordinii de default
Pentru a inversa aceasta ordine cuvintul de comanda DESC este specificat dupa numele coloanei in clauza ORDER BY.
Pentru a inversa ordinea coloanei HIREDATE, deci datele cele mai tirzii sa fie afisate primele,introduceti:
SELECT ENAME,JOB,HIREDATE
FROM EMP
ORDER BY HIREDATE DESC;
ENAME JOB HIREDATE
--------- --------- ---------
JAMES CLERK 23-JUL-84
KING PRESIDENT 09-JUL-84
BLAKE MANAGER 11-JUN-84
TURNER SALESMAN 04-JUN-84
WARD SALESMAN 26-MAR-84
SCOTT ANALYST 05-MAR-84
MARTIN SALESMAN 05-DEC-83
FORD ANALYST 05-DEC-83
MILLER CLERK 21-NOV-83
JONES MANAGER 31-OCT-83
ALLEN SALESMAN 15-AUG-83
SMITH CLERK 13-JUN-83
Ordonarea dupa mai multe coloane
Este posibil sa se ordoneze dupa mai multe coloane.Limita este numarul de coloane din tabela.In clauza ORDER BY se specifica coloanele pentru ordonat separate prin virgula.Daca una sau toate coloanele trebuie sa fie inversate specificati DESC dupa fiecare coloana.
Pentru a ordona dupa doua coloane si afisa in ordinea inversa a salariului, introduceti:
SELECT DEPTNO,JOB,ENAME
FROM EMP
ORDER BY DEPTNO,SAL DESC;
DEPTNO JOB ENAME
------ ------------ -------
10 PRESIDENT KING
10 MANAGER
10 CLERK MILLER
20 ANALYST SCOTT
20 ANALYST FORD
20 MANAGER JONES
20 CLERK
20 CLERK SMITH
30 MANAGER BLAKE
30 SALESMAN ALLEN
30 SALESMAN TURNER
30 SALESMAN WARD
30 SALESMAN MARTIN
30 CLERK JAMES
Pentru a ordona dupa o coloana nu este necesar sa o avem SELECT-ata.
ORDER BY si valorile nule
In Oracle7,valorile nule sunt afisate ultimele pentru secventele ascendente si sint raportate primele cind rindurile sunt sortate in ordine descendenta.
Atentie:
Clauza ORDER BY este utilizata intr-o interogare cind se doreste sa se afiseze rindurile intr-o ordine specifica .Fara clauza ORDER BY randurile sunt returnate intr-o ordine convenita de ORACLE si va trebui sa ne bazam pe el- ordinea determinata fiind consistenta de la cerere la cerere.De notat ca ordinea de afisare a rindurilor nu influenteaza ordinea interna a rindurilor asa cum sunt stocate in tabela.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1133
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved