logo

SQL UŽSAKYMAS PAGAL DATĄ

  • 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.