- ORDER BY är en sats i SQL som används med SELECT-frågan för att hämta posterna i stigande eller fallande ordning från en tabell.
- Precis som vi sorterar heltal och strängvärden lagrade i kolumnen i tabellerna, på samma sätt kan vi sortera datumen lagrade i SQL-tabellens kolumn.
- Alla poster kommer som standard att sorteras i stigande ordning. För att sortera posterna i fallande ordning används nyckelordet DESC.
Låt oss se några praktiska exempel för att förstå detta koncept tydligare. Vi kommer att använda MySQL-databasen för att skriva alla frågor.
Tänk på att vi har skapat en tabell som heter anställda i MySQL-databasen med följande data:
ID | namn | Lön | Inträdesdatum | 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 | Krishna Sharma | 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 |
Exempel 1:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i stigande ordning efter deras födelsedatum.
Fråga:
mysql> SELECT *FROM employees ORDER BY DOB;
Eftersom vi ville sortera posterna i stigande ordning efter födelsedatum för anställda, så vi har tillämpat ORDER BY-satsen på kolumnen 'DOB'.
Du får följande utdata:
ID | namn | Lön | Inträdesdatum | 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 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Resultaten från ovanstående fråga visar att posterna visas i stigande ordning för DOB.
Exempel 2:
alfabet med siffror
Skriv en fråga för att visa alla uppgifter om anställda ordnade i fallande ordning efter deras anslutningsdatum.
Fråga:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Eftersom vi ville sortera posterna i fallande ordning efter anslutningsdatumet för anställda, så har vi tillämpat ORDER BY-satsen med nyckelordet DESC i kolumnen 'Joining_Date'.
Du får följande utdata:
ID | namn | Lön | Inträdesdatum | 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 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Resultaten från ovanstående fråga visar att posterna visas i fallande ordning på anslutningsdatumen.
Exempel 3:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i stigande ordning efter deras födelseår.
Fråga:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Eftersom vi ville sortera posterna i stigande ordning efter de anställdas födelseår, så har vi tillämpat ORDER BY-satsen. DATE_FORMAT ()-funktionen tillämpas på kolumnen DOB med parametern '%Y' för att bara extrahera året från 'DOB'.
Du får följande utdata:
ID | namn | Lön | Inträdesdatum | Födelseår |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 2018-08-27 | 1978 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | 1990 |
1 | Rohit More | 50 000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 1999 |
Resultaten från ovanstående fråga visar att posterna visas i stigande ordning för den anställdes födelseår.
Exempel 4:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i fallande ordning efter deras födelsetimme.
Fråga:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Eftersom vi ville sortera posterna i fallande ordning efter födelsetimmen för anställda, så har vi tillämpat ORDER BY-satsen med nyckelordet DESC. DATE_FORMAT ()-funktionen tillämpas på kolumnen DOB med parametern '%H' för att bara extrahera födelsetimmen från kolumnen 'DOB'.
Du får följande utdata:
ID | namn | Lön | Inträdesdatum | Hour_Of_Birth |
---|---|---|---|---|
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 | femton |
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61 000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48 000 | 2010-10-23 | 02 |
Resultaten från ovanstående fråga visar att posterna visas i fallande ordning på den anställdes födelsetimme.
Exempel 5:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i stigande ordning efter deras anslutningsår.
Fråga:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Eftersom vi ville sortera posterna i stigande ordning efter anslutningsåret för anställda, så har vi tillämpat ORDER BY-klausulen. DATE_FORMAT ()-funktionen tillämpas på kolumnen Joining_Date med parametern '%Y' för att endast extrahera året från 'Joining_Date'.
Du får följande utdata:
ID | namn | Lön | Year_of_Joining | DOB |
---|---|---|---|---|
5 | Krishna Sharma | 48 000 | 2010 | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61 000 | 2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59 000 | 2018 | 1978-06-29 15:45:13 |
1 | Rohit More | 50 000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34 000 | 2021 | 1990-05-15 19:10:00 |
6 | Bhavesh Jain | 37 000 | 2021 | 1998-08-02 13:00:01 |
Resultaten från ovanstående fråga visar att posterna visas i stigande ordning för anställningsåret för anställda.
Exempel 6:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i fallande ordning på anslutningsdagen för anställda.
Fråga:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Eftersom vi ville sortera posterna i fallande ordning på anslutningsdagen för anställda, så har vi tillämpat ORDER BY-satsen med nyckelordet DESC. Funktionen DAY () tillämpas på kolumnen 'Anslutningsdatum' för att bara extrahera dagen för anslutning från Anslutningsdatum.
Du får följande utdata:
ID | namn | Lön | Day_Of_Joining | DOB |
---|---|---|---|---|
4 | Anant Desai | 59 000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 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 |
Resultaten från ovanstående fråga visar att posterna visas i fallande ordning på anslutningsdagen för anställda.
sql välj som
Exempel 7:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i stigande ordning efter de anställdas födelsedag.
Fråga:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Eftersom vi ville sortera posterna i stigande ordning efter de anställdas födelsedag, så har vi tillämpat ORDER BY-klausulen. DAY ()-funktionen används på kolumnen 'DOB' för att extrahera endast födelsedagen från DOB.
Du får följande utdata:
ID | namn | Lön | Year_of_Joining | Födelsedag |
---|---|---|---|---|
6 | Bhavesh Jain | 37 000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34 000 | 2021-01-01 | femton |
3 | Saurabh Jha | 61 000 | 2015-05-01 | tjugo |
5 | Krishna Sharma | 48 000 | 2010-10-23 | tjugoett |
1 | Rohit More | 50 000 | 2020-02-08 | 28 |
4 | Anant Desai | 59 000 | 2018-08-27 | 29 |
Resultaten från ovanstående fråga visar att posterna visas i stigande ordning på den anställdes födelsedag.
Exempel 8:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i stigande ordning efter den anställdes födelsemånad.
Fråga:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | namn | Lön | Inträdesdatum | 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 | Krishna Sharma | 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 |
Resultaten från ovanstående fråga visar att posterna visas i stigande ordning för den anställdes födelsemånad.
Exempel 9:
Skriv en fråga för att visa alla uppgifter om anställda ordnade i stigande ordning efter den anställdes månad då anställde började.
Fråga:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Eftersom vi ville sortera posterna i stigande ordning för anslutningsmånaden för anställda, så har vi tillämpat ORDER BY-klausulen. MONTH ()-funktionen tillämpas på kolumnen 'Anslutningsdatum' för att endast extrahera anslutningsmånaden från Anslutningsdatum.
Du får följande utdata:
ID | namn | Lön | Inträdesdatum | 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 | Krishna Sharma | 48 000 | 2010-10-23 | 1999-03-21 02:14:56 |
Resultaten som erhålls från ovanstående fråga visar att posterna visas i stigande ordning för den anställdes månad då anställdes.