- ORDER BY je klauzula u SQL-u koja se koristi s SELECT upitom za dohvaćanje zapisa u uzlaznom ili silaznom redoslijedu iz tablice.
- Baš kao što sortiramo vrijednosti cijelog broja i niza pohranjene u stupcu tablice, na sličan način možemo sortirati datume pohranjene u stupcu SQL tablice.
- Svi će zapisi prema zadanim postavkama biti poredani uzlaznim redoslijedom. Za sortiranje zapisa u silaznom redoslijedu koristi se ključna riječ DESC.
Pogledajmo nekoliko praktičnih primjera kako bismo jasnije razumjeli ovaj koncept. Za pisanje svih upita koristit ćemo MySQL bazu podataka.
Uzmimo u obzir da smo stvorili tablicu pod nazivom zaposlenici u MySQL bazi podataka sa sljedećim podacima:
iskaznica | Ime | Plaća | Datum pridruženja | DOB |
---|---|---|---|---|
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Primjer 1:
Napišite upit za prikaz svih detalja zaposlenika poredanih uzlaznim redoslijedom prema datumu rođenja.
Upit:
mysql> SELECT *FROM employees ORDER BY DOB;
Budući da smo zapise željeli poredati uzlaznim redoslijedom datuma rođenja zaposlenika, primijenili smo klauzulu ORDER BY na stupac 'DOB'.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Datum pridruženja | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Rezultati dobiveni iz gornjeg upita pokazuju da su zapisi prikazani prema uzlaznom redoslijedu DOB-a.
Primjer 2:
Napišite upit za prikaz svih pojedinosti o zaposlenicima poredanim silaznim redoslijedom prema datumima pridruživanja.
dvostruko u Javi
Upit:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Budući da smo željeli sortirati zapise prema silaznom redoslijedu datuma pridruživanja zaposlenika, primijenili smo klauzulu ORDER BY s ključnom riječi DESC na stupac 'Joining_Date'.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Datum pridruženja | DOB |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Rezultati dobiveni iz gornjeg upita pokazuju da su zapisi prikazani prema silaznom redoslijedu datuma spajanja.
Primjer 3:
ukloniti zadnji znak iz niza
Napišite upit za prikaz svih podataka o zaposlenicima poredanim uzlaznim redoslijedom njihove godine rođenja.
Upit:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Budući da smo zapise željeli sortirati prema uzlaznom redoslijedu godine rođenja zaposlenika, primijenili smo klauzulu ORDER BY. Funkcija DATE_FORMAT () primjenjuje se na stupac DOB s parametrom '%Y' za izdvajanje samo godine iz 'DOB'.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Datum pridruženja | Godina rođenja |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978. godine |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983. godine |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990. godine |
1 | Rohit More | 50000 | 2020-02-08 | 1991. godine |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998. godine |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999. godine |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema uzlaznom redoslijedu godine rođenja zaposlenika.
Primjer 4:
Napišite upit za prikaz svih detalja zaposlenika poredanih silaznim redoslijedom prema satu rođenja.
Upit:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Budući da smo željeli sortirati zapise prema silaznom redoslijedu sati rođenja zaposlenika, primijenili smo klauzulu ORDER BY s ključnom riječi DESC. Funkcija DATE_FORMAT () primjenjuje se na stupac DOB s parametrom '%H' kako bi se izdvojio samo sat rođenja iz stupca 'DOB'.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Datum pridruženja | Sat_Rođenja |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 19 |
1 | Rohit More | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 2018-08-27 | petnaest |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 02 |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema silaznom redoslijedu sata rođenja zaposlenika.
Primjer 5:
Napišite upit za prikaz svih detalja zaposlenika poredanih uzlaznim redoslijedom prema godini pridruživanja.
Upit:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Budući da smo željeli sortirati zapise prema rastućem redoslijedu godine pridruživanja zaposlenika, primijenili smo klauzulu ORDER BY. Funkcija DATE_FORMAT () primjenjuje se na stupac Joining_Date s parametrom '%Y' za izdvajanje samo godine iz 'Joining_Date'.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Godina_pridruživanja | DOB |
---|---|---|---|---|
5 | Krishna Sharma | 48000 | 2010 | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61000 | 2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018 | 1978-06-29 15:45:13 |
1 | Rohit More | 50000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021 | 1990-05-15 19:10:00 |
6 | Bhavesh Jain | 37000 | 2021 | 1998-08-02 13:00:01 |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema uzlaznom redoslijedu godine pridruživanja zaposlenika.
Primjer 6:
Napišite upit za prikaz svih detalja zaposlenika poredanih silaznim redoslijedom prema danu pridruživanja zaposlenika.
Upit:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Budući da smo željeli sortirati zapise prema silaznom redoslijedu dana pridruživanja zaposlenika, primijenili smo klauzulu ORDER BY s ključnom riječi DESC. Funkcija DAY () primjenjuje se na stupac 'Joining_Date' kako bi se izdvojio samo dan pridruživanja iz Joining_Date.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Dan_pridruživanja | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23 | 1999-03-21 02:14:56 |
1 | Rohit More | 50000 | 8 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 1 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 1983-02-20 12:18:45 |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema silaznom redoslijedu dana pridruživanja zaposlenika.
Primjer 7:
java string charat
Napišite upit za prikaz svih detalja zaposlenika poredanih uzlaznim redoslijedom datuma rođenja zaposlenika.
Upit:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Budući da smo zapise željeli poredati uzlaznim redoslijedom prema datumu rođenja zaposlenika, primijenili smo klauzulu ORDER BY. Funkcija DAY () primjenjuje se na stupac 'DOB' kako bi se iz DOB-a izdvojio samo dan rođenja.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Godina_pridruživanja | Dan rođenja |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34000 | 2021-01-01 | petnaest |
3 | Saurabh Jha | 61000 | 2015-05-01 | dvadeset |
5 | Krishna Sharma | 48000 | 2010-10-23 | dvadeset i jedan |
1 | Rohit More | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 2018-08-27 | 29 |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema uzlaznom redoslijedu dana rođenja zaposlenika.
Primjer 8:
Napišite upit za prikaz svih detalja zaposlenika poredanih uzlaznim redoslijedom prema mjesecu rođenja zaposlenika.
Upit:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
iskaznica | Ime | Plaća | Datum pridruženja | DOB |
---|---|---|---|---|
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema uzlaznom redoslijedu mjeseca rođenja zaposlenika.
Primjer 9:
sinkronizacija niti
Napišite upit za prikaz svih detalja zaposlenika poredanih uzlaznim redoslijedom prema mjesecu zaposlenja zaposlenika.
Upit:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Budući da smo željeli sortirati zapise prema rastućem redoslijedu pridruženog mjeseca zaposlenika, primijenili smo klauzulu ORDER BY. Funkcija MONTH () primjenjuje se na stupac 'Joining_Date' za izdvajanje samo mjeseca pridruživanja iz Joining_Date.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Plaća | Datum pridruženja | DOB |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit More | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Rezultati dobiveni iz gornjeg upita pokazuju da se zapisi prikazuju prema uzlaznom redoslijedu prema mjesecu zaposlenja zaposlenika.