- ORDER BY to klauzula w języku SQL używana z zapytaniem SELECT w celu pobrania rekordów z tabeli w kolejności rosnącej lub malejącej.
- Podobnie jak sortujemy liczby całkowite i wartości łańcuchowe zapisane w kolumnie tabel, podobnie możemy sortować daty zapisane w kolumnie tabeli SQL.
- Wszystkie rekordy zostaną domyślnie posortowane w kolejności rosnącej. Aby posortować rekordy w kolejności malejącej, stosuje się słowo kluczowe DESC.
Zobaczmy kilka praktycznych przykładów, aby lepiej zrozumieć tę koncepcję. Do zapisywania wszystkich zapytań będziemy używać bazy danych MySQL.
Rozważmy, że utworzyliśmy tabelę o nazwie pracownicy w bazie danych MySQL z następującymi danymi:
ID | Nazwa | Wynagrodzenie | Data przyłączenia | DOB |
---|---|---|---|---|
1 | Rohit Więcej | 50000 | 2020-02-08 | 28.01.1991 18:06:08 |
2 | Kunala Mohita | 34000 | 2021-01-01 | 15.05.1990 19:10:00 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20.02.1983 12:18:45 |
4 | Anant Desai | 59000 | 27.08.2018 | 29.06.1978 15:45:13 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 21.03.1999 02:14:56 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Przykład 1:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według daty urodzenia.
Zapytanie:
mysql> SELECT *FROM employees ORDER BY DOB;
Ponieważ chcieliśmy posortować rekordy rosnąco według dat urodzenia pracowników, zastosowaliśmy klauzulę ORDER BY w kolumnie „DOB”.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Data przyłączenia | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27.08.2018 | 29.06.1978 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20.02.1983 12:18:45 |
2 | Kunala Mohite’a | 34000 | 2021-01-01 | 15.05.1990 19:10:00 |
1 | Rohit Więcej | 50000 | 2020-02-08 | 28.01.1991 18:06:08 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 21.03.1999 02:14:56 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane według rosnącej kolejności DOB.
Przykład 2:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności malejącej według dat dołączenia.
Zapytanie:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Ponieważ chcieliśmy posortować rekordy w kolejności malejącej według daty dołączenia pracowników, zastosowaliśmy klauzulę ORDER BY ze słowem kluczowym DESC w kolumnie „Data_dołączenia”.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Data przyłączenia | DOB |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunala Mohite’a | 34000 | 2021-01-01 | 15.05.1990 19:10:00 |
1 | Rohit Więcej | 50000 | 2020-02-08 | 28.01.1991 18:06:08 |
4 | Anant Desai | 59000 | 27.08.2018 | 29.06.1978 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20.02.1983 12:18:45 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 21.03.1999 02:14:56 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane według malejącej kolejności dat połączenia.
Przykład 3:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według roku urodzenia.
Zapytanie:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Ponieważ chcieliśmy posortować rekordy rosnąco według roku urodzenia pracowników, zastosowaliśmy klauzulę ORDER BY. Funkcja DATE_FORMAT () jest stosowana w kolumnie DOB z parametrem „%Y”, aby wyodrębnić tylko rok z „DOB”.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Data przyłączenia | Rok urodzenia |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27.08.2018 | 1978 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983 |
2 | Kunala Mohita | 34000 | 2021-01-01 | 1990 |
1 | Rohit Więcej | 50000 | 2020-02-08 | 1991 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 1999 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane w kolejności rosnącej według roku urodzenia pracownika.
Przykład 4:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności malejącej według godziny urodzenia.
Zapytanie:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Ponieważ chcieliśmy posortować rekordy w kolejności malejącej według godziny urodzenia pracowników, zastosowaliśmy klauzulę ORDER BY ze słowem kluczowym DESC. Funkcja DATE_FORMAT () jest stosowana w kolumnie DOB z parametrem „%H”, aby wyodrębnić tylko godzinę urodzenia z kolumny „DOB”.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Data przyłączenia | Godzina_Urodzenia |
---|---|---|---|---|
2 | Kunala Mohite’a | 34000 | 2021-01-01 | 19 |
1 | Rohit Więcej | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 27.08.2018 | piętnaście |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 12 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 02 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności malejącej według godziny urodzenia pracownika.
Przykład 5:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według roku dołączenia.
Zapytanie:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Ponieważ chcieliśmy posortować rekordy rosnąco według roku przyłączenia pracowników, zastosowaliśmy klauzulę ORDER BY. Funkcja DATE_FORMAT () jest stosowana w kolumnie Joining_Date z parametrem „%Y”, aby wyodrębnić tylko rok z „Joining_Date”.
Otrzymasz następujące dane wyjściowe:
mapy Javy
ID | Nazwa | Wynagrodzenie | Year_Of_Dołączenie | DOB |
---|---|---|---|---|
5 | Kryszna Sharma | 48000 | 2010 | 21.03.1999 02:14:56 |
3 | Saurabh Jha | 61000 | 2015 | 20.02.1983 12:18:45 |
4 | Anant Desai | 59000 | 2018 | 29.06.1978 15:45:13 |
1 | Rohit Więcej | 50000 | 2020 | 28.01.1991 18:06:08 |
2 | Kunala Mohita | 34000 | 2021 | 15.05.1990 19:10:00 |
6 | Bhavesh Jain | 37000 | 2021 | 1998-08-02 13:00:01 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy są wyświetlane w kolejności rosnącej według roku dołączenia pracowników.
Przykład 6:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności malejącej według dnia dołączenia pracowników.
Zapytanie:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Ponieważ chcieliśmy posortować rekordy w kolejności malejącej według dnia dołączenia pracowników, zastosowaliśmy klauzulę ORDER BY ze słowem kluczowym DESC. Funkcja DAY () jest stosowana w kolumnie „Joining_Date”, aby wyodrębnić tylko dzień przyłączenia z Joining_Date.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Day_Of_Dołączenie | DOB |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 29.06.1978 15:45:13 |
5 | Kryszna Sharma | 48000 | 23 | 21.03.1999 02:14:56 |
1 | Rohit Więcej | 50000 | 8 | 28.01.1991 18:06:08 |
6 | Bhavesh Jain | 37000 | 3 | 1998-08-02 13:00:01 |
2 | Kunala Mohita | 34000 | 1 | 15.05.1990 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 20.02.1983 12:18:45 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności malejącej według dnia dołączenia pracowników.
Przykład 7:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według daty urodzenia pracownika.
Zapytanie:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Ponieważ chcieliśmy posortować rekordy rosnąco według daty urodzenia pracownika, zastosowaliśmy klauzulę ORDER BY. Funkcja DZIEŃ () jest stosowana w kolumnie „DOB”, aby wyodrębnić z daty urodzenia tylko dzień urodzenia.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Year_Of_Dołączenie | Dzień narodzin |
---|---|---|---|---|
6 | Bhavesh Jain | 37000 | 2021-07-03 | 2 |
2 | Kunala Mohita | 34000 | 2021-01-01 | piętnaście |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | dwadzieścia jeden |
1 | Rohit Więcej | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 27.08.2018 | 29 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności rosnącej według daty urodzenia pracownika.
Przykład 8:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według miesiąca urodzenia pracownika.
Zapytanie:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
ID | Nazwa | Wynagrodzenie | Data przyłączenia | DOB |
---|---|---|---|---|
1 | Rohit Więcej | 50000 | 2020-02-08 | 28.01.1991 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20.02.1983 12:18:45 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 21.03.1999 02:14:56 |
2 | Kunala Mohita | 34000 | 2021-01-01 | 15.05.1990 19:10:00 |
4 | Anant Desai | 59000 | 27.08.2018 | 29.06.1978 15:45:13 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności rosnącej według miesiąca urodzenia pracownika.
Przykład 9:
Napisz zapytanie wyświetlające wszystkie dane pracowników w kolejności rosnącej według miesiąca dołączenia pracownika.
Zapytanie:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Ponieważ chcieliśmy posortować rekordy rosnąco według miesiąca przyłączenia pracowników, zastosowaliśmy klauzulę ORDER BY. W kolumnie „Joining_Date” zastosowano funkcję MIESIĄC (), aby wyodrębnić tylko miesiąc przyłączenia z Joining_Date.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wynagrodzenie | Data przyłączenia | DOB |
---|---|---|---|---|
2 | Kunala Mohita | 34000 | 2021-01-01 | 15.05.1990 19:10:00 |
1 | Rohit Więcej | 50000 | 2020-02-08 | 28.01.1991 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20.02.1983 12:18:45 |
6 | Bhavesh Jain | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59000 | 27.08.2018 | 29.06.1978 15:45:13 |
5 | Kryszna Sharma | 48000 | 23.10.2010 | 21.03.1999 02:14:56 |
Wyniki uzyskane z powyższego zapytania pokazują, że rekordy wyświetlane są w kolejności rosnącej miesiąca dołączenia pracownika.