Az SQL ORDER BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Ebben a leckében az SQL ORDER BY záradéka kerül bemutatásra, illetve annak módosítói, az ASC és DESC.
Az SQL ORDER BY leírása
Az SQL ORDER BY záradék segítségével a lekérdezések eredményét, azaz a kapott eredményhalmazt rendezhetjük. A rendezés lehet növekvő vagy csökkenő. Alapértelmezés szerint, azaz, ha nem adunk meg módosítót, akkor a növekvő (ASC) rendezés kerül végrehajtásra. Ha csökkenő sorrendbe szeretnénk rendezni, akkor a DESC módosítót kell megadnunk.
Módosítók:
- ASC (növekvő rendezés, alapértelmezett, nem kötelező megadni)
- DESC (csökkenő rendezés)
Az ORDER BY utasítással sorba rendezhetjük a számokat, illetve a szövegeket is ábécé alapján.
Az SQL ORDER BY szintaktikája
Alább az SQL ORDER BY záradékának szintaktikáját olvashatjátok.
SELECT oszlop(ok)
FROM tábla
WHERE feltétel
ORDER BY oszlop(ok) [ASC | DESC]
Code language: SQL (Structured Query Language) (sql)
A SELECT, a FROM és a WHERE utasítás megadása jelen pillanatban nem releváns, csak azért került megjelenítésre, hogy látni lehessen az ORDER BY helyét a lekérdezésben. Az ORDER BY már egy eredményhalmazt rendez sorba, így mindig a lekérdezés eredményét befolyásoló utasítások után kell megadni. Azaz a SELECT, FROM, WHERE, HAVING, GROUP BY után. Függetlenül attól, hogy ezek közül hány jelenik meg a lekérdezésben.
Az ORDER BY kulcsszó után meg kell adnunk azokat az oszlopokat, amelyek alapján rendezni szeretnénk. Ha növekvő sorrendbe szeretnénk rendezni, akkor nem szükséges módosítót megadnunk, de ha megadjuk az ASC kifejezést, akkor sincs probléma. Ha csökkenőbe szeretnénk rendezni, akkor a DESC kulcsszót kell az oszlop neve után írnunk.
A rendezés akár több oszlop alapján is történhet, amennyiben több rekord egy oszlopa megegyezik, akkor a következőnek megadott oszlop alapján történik a rendezés.
SQL ORDER BY példák
Az alábbi példák során az előző leckékből is ismert adatbázissal fogunk dolgozni.
SQL ORDER BY példa #1: ASC
Ebben a példában növekvő sorrendbe rendezzük az adatokat a születési dátum alapján. Akár ki is írhattuk volna a „szuletesi_ev” után az ASC módosítót, de így is ugyanazt az eredményt kapjuk.
sql_table tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Budapest | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
SQL lekérdezés
SELECT *
FROM sql_table
ORDER BY szuletesi_ev;
Code language: SQL (Structured Query Language) (sql)
Eredmény
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Lakatos | Dezső | Debrecen | 1961 |
Balogh | Beatrix | Miskolc | 1985 |
Horváth | Tamás | Budapest | 1989 |
Losonczi | Léna | Nyíregyháza | 2005 |
SQL ORDER BY példa #2: DESC
A következő példában az adatokat csökkenő sorrendbe rendezzük a születési év alapján, így már ki kell raknunk a DESC módosítót.
sql_table tábla
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Horváth | Tamás | Budapest | 1989 |
Lakatos | Dezső | Debrecen | 1961 |
Losonczi | Léna | Nyíregyháza | 2005 |
Balogh | Beatrix | Miskolc | 1985 |
SQL lekérdezés
SELECT *
FROM sql_table
ORDER BY szuletesi_ev DESC;
Code language: SQL (Structured Query Language) (sql)
Eredmény
vezeteknev | keresztnev | lakhely | szuletesi_ev |
---|---|---|---|
Losonczi | Léna | Nyíregyháza | 2005 |
Horváth | Tamás | Budapest | 1989 |
Balogh | Beatrix | Miskolc | 1985 |
Lakatos | Dezső | Debrecen | 1961 |