Sissejuhatus SQL-i klausli ORDER BY klausli sisse
SQL-i tellimuse klausel aitab meil liigitada oma andmeid kas kasvavas või kahanevas järjekorras, sõltuvalt meie tabelite veergudest. ORDER BY on märksõna, mida meie päringus kasutatakse andmete sorteerimisel. Vaikimisi liigitavad vähesed andmebaasid päringuga tagastatud tulemused kasvavas järjekorras. Kirjetes sisalduvate andmete sortimiseks kahanevas järjekorras kasutame päringus märksõna DESC. Samuti on meil märksõna ASC andmete liigitamiseks kasvavas järjekorras, kuigi enamasti ei kasuta me seda andmebaasi vaikesätete tõttu.
SQL-is esitatud klausli ORDER BY parameetrid
- veeru_nimi: see osutab veeru nimele, mida me tahame hankida, mille põhjal andmeid tuleb korraldada.
- tabeli_nimi: see näitab tabeli nime, kust kirjed tuleb hankida. Selles parameetris peab olema vähemalt üks tabeli nimi.
- Kus tingimus: see on valikuline parameeter. KUS klausel sisaldab tingimusi, millele peame andmete valimiseks vastama.
- ASC : see on märksõna, mida kasutatakse veeru andmete sortimiseks kasvavas järjekorras. Kui ühtegi märksõna pole nimetatud, sorteeritakse andmed vaikimisi kasvavas järjekorras.
- DESC: seda märksõna kasutatakse veeru andmete sortimiseks kahanevas järjekorras.
- |: See on vaid tähis „VÕI” jaoks, kuna tulemuste saamiseks peame oma päringus kasutama kas ASC või DESC.
TELLIMUS klausli järgi
ORDER BY süntaks on:
SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);
Süntaks andmete sortimiseks ühe veeru järgi
Tabeli andmete sortimiseks ühe veeru alusel kasvavas või kahanevas järjekorras saame kasutada märksõnu ASC või DESC. Meie näites sorteerime andmeid kasvavas järjekorras, kasutades selleks märksõna ASC.
Süntaks
SELECT * FROM table_name ORDER BY column_name ASC
Andmete sortimise süntaks mitme veeru järgi
Tabeli andmete sortimiseks mitmete veergude alusel kasvavas või kahanevas järjekorras saame kasutada märksõnu ASC või DESC. Mitme veeru nimetamiseks, mille järgi andmeid sorteerime, peame mainima komaga (, ) eraldatud veergude nimesid. Meie näites sorteerime andmeid kasvavas järjekorras, kasutades selleks märksõna ASC.
Süntaks
SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC
Näited TELLIMUSEST klausli järgi
Vaadakem erinevaid näiteid, et mõista tellimuse klausli paremaks mõistmist.
1. Näide tulemuste sortimiseks kasvavas järjekorras
Tulemuste liigitamiseks kasvavas järjekorras saame kasutada märksõna ASC. Kui ühtegi märksõna, ASC või DESC pole esitatud, on vaikimisi sortimisjärjestus kasvav. Mõistagem seda näite abil. Meil on töötajate laud.
Töötaja ID | EmployeeLastName | EmployeeFirstName | E-kirja ID |
001 | Donald | Jo | |
002 | Smith | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Thomas | Sally | |
006 | Pruun | Dan |
Kui proovime tulemusi korraldada töötaja perekonnanime kasvavas järjekorras, võime kasutada järgmist avaldust ja järgmine tulemus kuvatakse järgnevas tabelis.
SELECT *
FROM Employee
ORDER BY EmployeeLastName;
Tulemus
Töötaja ID | EmployeeLastName | EmployeeFirstName | E-kirja ID |
006 | Pruun | Dan | |
001 | Donald | Jo | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
002 | Smith | Jamie | |
005 | Thomas | Sally |
See näide annab tagasi kõik tabeli Töötaja kirjed, mis on järjestatud kasvavas järjekorras vastavalt väljale EmployeeLastName. Sama tulemuse saamiseks võime märksõna ASC kasutada ka järgmiselt.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
2. Näide tulemuste sortimiseks kahanevas järjekorras
Kasutame märksõna DESC, kui soovime oma andmeid järjestada kahanevas järjekorras meie TELLIMISE POOLE. Mõistagem seda näite abil. Meil on sama tabel töötaja, mis sisaldab järgmisi andmeid.
Töötaja ID | EmployeeLastName | EmployeeFirstName | E-kirja ID |
001 | Donald | Jo | |
002 | Smith | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Thomas | Sally | |
006 | Pruun | Dan |
Vajame ainult töötajaid, kelle töötaja ID on suurem kui 2, ja vajame oma andmeid kahanevas järjekorras. Kasutame sama SQL-lause järgmist ja saame tulemuste kogumi tabeli, milles on ainult 4 kirjet.
SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;
Tulemus:
Töötaja ID | EmployeeLastName | EmployeeFirstName | E-kirja ID |
006 | Pruun | Dan | |
005 | Thomas | Sally | |
004 | Reynolds | Andy | |
003 | Jones | Amy |
3. Näide tulemuste sortimiseks nende suhtelise positsiooni järgi
Saame oma andmeid korraldada ka veergude suhtelise positsiooni järgi, kus 1 tähistab esimest välja, 2 tähistab teist välja, 3 tähistab kolmandat välja ja nii edasi. Proovime korraldada oma töötajate tabelis olevad andmed vastavalt suhtelisele positsioonidele.
Töötaja ID | EmployeeLastName | EmployeeFirstName | e-post |
001 | Donald | Jo | |
002 | Smith | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Thomas | Sally | |
006 | Pruun | Dan |
Kasutades SQL-lause järgmiselt, saame andmeid korraldada kahanevas järjekorras EmployeeID-ga. Samuti oleme väitnud, et vajame tabelist ainult kahte veergu, nimelt EmployeeID ja EmployeeLastName, koos WHERE klausli kasutamisega, et mainida, et me ei soovi ühtegi töötajat ID 003 sisaldavat rida.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
Tulemus
Töötaja ID | EmployeeLastName |
006 | Pruun |
005 | Thomas |
004 | Reynolds |
002 | Smith |
001 | Donald |
Kuna positsiooni 1 veerg on EmployeeID, sorteeritakse tulemuskomplekt vastavalt EmployeeID.
Järeldus
SQL-is ei tagasta SELECT-lause andmeid mingis kindlas järjekorras. Konkreetse tellimuse tagamiseks kasutame klauslit ORDER BY. ORDER BY sorteerib ühe või mitme veeru alusel. Kirjed tagastatakse kasvavas või kahanevas järjekorras. Kui märksõna ASC või DESC pole esitatud, siis kategoriseeritakse tulemused kasvavas järjekorras.
Soovitatav artikkel
See on SQL-is esitatud klausli ORDER BY klausli juhend. Siin käsitleme klausli ORDER BY parameetreid ja erinevaid näiteid koos süntaksiga. Lisateavet leiate ka meie muudest soovitatud artiklitest -
- NoSQL eelised
- SQL-i haldustööriistad
- T-SQL stringifunktsioonid
- PostgreSQL andmetüübid
- Erinevat tüüpi SQL-i andmed koos näidetega