- ORDER BY yra SQL sąlyga, kuri naudojama su SELECT užklausa, norint gauti įrašus didėjančia arba mažėjančia tvarka iš lentelės.
- Lygiai taip pat, kaip rūšiuojame sveikuosius skaičius ir eilučių reikšmes, saugomas lentelių stulpelyje, taip pat galime rūšiuoti datas, saugomas SQL lentelės stulpelyje.
- Pagal numatytuosius nustatymus visi įrašai bus surūšiuoti didėjančia tvarka. Norint rūšiuoti įrašus mažėjančia tvarka, naudojamas raktinis žodis DESC.
Pažiūrėkime keletą praktinių pavyzdžių, kad geriau suprastume šią sąvoką. Visoms užklausoms rašyti naudosime MySQL duomenų bazę.
Apsvarstykite, kad MySQL duomenų bazėje sukūrėme lentelę, pavadintą darbuotojais su šiais duomenimis:
ID | vardas | Atlyginimas | Įstojimo data | DOB |
---|---|---|---|---|
1 | Rohit More | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
1 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta jų gimimo datos didėjimo tvarka.
Užklausa:
mysql> SELECT *FROM employees ORDER BY DOB;
Kadangi norėjome rūšiuoti įrašus didėjimo tvarka pagal darbuotojų gimimo datą, todėl stulpelyje „DOB“ pritaikėme ORDER BY sąlygą.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Įstojimo data | DOB |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit More | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Aukščiau pateiktos užklausos rezultatai rodo, kad įrašai rodomi didėjančia DOB tvarka.
2 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyti mažėjančia tvarka pagal jų prisijungimo datas.
Užklausa:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Kadangi norėjome rūšiuoti įrašus mažėjančia tvarka pagal darbuotojų prisijungimo datą, todėl stulpelyje 'Joining_Date' pritaikėme sąlygą ORDER BY su raktiniu žodžiu DESC.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Įstojimo data | DOB |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit More | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Aukščiau pateiktos užklausos rezultatai rodo, kad įrašai rodomi sujungimo datų mažėjimo tvarka.
3 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta jų gimimo metų didėjimo tvarka.
Užklausa:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Kadangi norėjome rūšiuoti įrašus didėjimo tvarka pagal darbuotojų gimimo metus, todėl pritaikėme punktą ORDER BY. Funkcija DATE_FORMAT () taikoma stulpelyje DOB su parametru „%Y“, kad iš „DOB“ būtų išskirti tik metai.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Įstojimo data | Gimimo metai |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 2018-08-27 | 1978 m |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983 m |
2 | Kunal Mohite | 34 000 | 2021-01-01 | 1990 m |
1 | Rohit More | 50 000 | 2020-02-08 | 1991 m |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998 m |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 1999 m |
Iš aukščiau pateiktos užklausos gauti rezultatai rodo, kad įrašai rodomi darbuotojo gimimo metų didėjimo tvarka.
4 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyti mažėjančia tvarka pagal jų gimimo valandą.
Užklausa:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Kadangi norėjome rūšiuoti įrašus mažėjančia tvarka pagal darbuotojų gimimo valandą, tai pritaikėme ORDER BY sąlygą su raktiniu žodžiu DESC. Funkcija DATE_FORMAT () taikoma stulpelyje DOB su parametru „%H“, kad iš stulpelio „DOB“ būtų išskirta tik gimimo valanda.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Įstojimo data | Gimimo_valanda |
---|---|---|---|---|
2 | Kunal Mohit | 34 000 | 2021-01-01 | 19 |
1 | Rohit More | 50 000 | 2020-02-08 | 18 |
4 | Anant Desai | 59 000 | 2018-08-27 | penkiolika |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 12 |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 02 |
Iš aukščiau pateiktos užklausos gauti rezultatai rodo, kad įrašai rodomi darbuotojo gimimo valandos mažėjimo tvarka.
5 pavyzdys:
kas yra orakulas
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta didėjimo tvarka pagal jų prisijungimo metus.
Užklausa:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Kadangi norėjome rūšiuoti įrašus didėjimo tvarka pagal darbuotojų įstojimo metus, todėl pritaikėme punktą ORDER BY. Funkcija DATE_FORMAT () taikoma stulpelyje Joining_Date su parametru '%Y', kad iš 'Joining_Date' būtų išskirti tik metai.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Prisijungimo_metai | DOB |
---|---|---|---|---|
5 | Krišna Šarma | 48 000 | 2010 m | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61 000 | 2015 m | 1983-02-20 12:18:45 |
4 | Anant Desai | 59 000 | 2018 m | 1978-06-29 15:45:13 |
1 | Rohit More | 50 000 | 2020 m | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34 000 | 2021 m | 1990-05-15 19:10:00 |
6 | Bhavesh Jain | 37 000 | 2021 m | 1998-08-02 13:00:01 |
Iš aukščiau pateiktos užklausos gauti rezultatai rodo, kad įrašai rodomi darbuotojų įstojimo metų didėjimo tvarka.
6 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta mažėjančia tvarka pagal darbuotojų prisijungimo dieną.
Užklausa:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Kadangi norėjome rūšiuoti įrašus mažėjančia tvarka pagal darbuotojų prisijungimo dieną, tai pritaikėme ORDER BY sąlygą su raktiniu žodžiu DESC. DAY () funkcija taikoma stulpelyje „Prisijungimo_data“, kad iš Joining_Date būtų išskirta tik prisijungimo diena.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Prisijungimo_diena | DOB |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 27 | 1978-06-29 15:45:13 |
5 | Krišna Šarma | 48 000 | 23 | 1999-03-21 02:14:56 |
1 | Rohit More | 50 000 | 8 | 1991-01-28 18:06:08 |
6 | Bhavesh Jain | 37 000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34 000 | 1 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61 000 | 1 | 1983-02-20 12:18:45 |
Aukščiau pateiktos užklausos rezultatai rodo, kad įrašai rodomi darbuotojų įstojimo dienos mažėjimo tvarka.
7 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta didėjimo tvarka pagal darbuotojų gimimo dieną.
Užklausa:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Kadangi norėjome rūšiuoti įrašus didėjimo tvarka pagal darbuotojų gimimo dieną, todėl pritaikėme punktą ORDER BY. DAY () funkcija taikoma stulpelyje „DOB“, kad iš DOB būtų išskirta tik gimimo diena.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Prisijungimo_metai | Gimimo_diena |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | penkiolika |
3 | Saurabh Jha | 61 000 | 2015-05-01 | dvidešimt |
5 | Krišna Šarma | 48 000 | 2010-10-23 | dvidešimt vienas |
1 | Rohit More | 50 000 | 2020-02-08 | 28 |
4 | Anant Desai | 59 000 | 2018-08-27 | 29 |
Iš aukščiau pateiktos užklausos gauti rezultatai rodo, kad įrašai rodomi darbuotojo gimimo dienos didėjimo tvarka.
8 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta didėjančia darbuotojo gimimo mėnesio tvarka.
Užklausa:
charat java
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | vardas | Atlyginimas | Įstojimo data | DOB |
---|---|---|---|---|
1 | Rohit More | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
Iš aukščiau pateiktos užklausos gauti rezultatai rodo, kad įrašai rodomi darbuotojo gimimo mėnesio didėjimo tvarka.
9 pavyzdys:
Parašykite užklausą, kad būtų rodoma visa informacija apie darbuotojus, išdėstyta didėjančia darbuotojo prisijungimo mėnesio tvarka.
Užklausa:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Kadangi norėjome rūšiuoti įrašus darbuotojų įstojimo mėnesio didėjimo tvarka, todėl pritaikėme punktą ORDER BY. MONTH () funkcija taikoma stulpelyje „Joining_Date“, kad iš Joining_Date būtų išskirtas tik prisijungimo mėnuo.
Gausite tokią išvestį:
ID | vardas | Atlyginimas | Įstojimo data | DOB |
---|---|---|---|---|
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Rohit More | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krišna Šarma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Iš aukščiau pateiktos užklausos gauti rezultatai rodo, kad įrašai rodomi darbuotojo įstojimo mėnesio didėjimo tvarka.