- ORDER BY е клауза в SQL, която се използва с SELECT заявка за извличане на записите във възходящ или низходящ ред от таблица.
- Точно както сортираме целите числа и низовите стойности, съхранени в колоната на таблиците, по подобен начин можем да сортираме датите, съхранени в колоната на SQL таблицата.
- Всички записи ще бъдат сортирани по подразбиране във възходящ ред. За сортиране на записите в низходящ ред се използва ключовата дума DESC.
Нека видим няколко практически примера, за да разберем тази концепция по-ясно. Ще използваме базата данни MySQL за писане на всички заявки.
Помислете, че сме създали таблица, наречена служители в MySQL база данни със следните данни:
документ за самоличност | Име | Заплата | Дата на присъединяване | DOB |
---|---|---|---|---|
1 | Рохит Мор | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Кунал Мохит | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | Саураб Джа | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Анант Десай | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Кришна Шарма | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
Пример 1:
Напишете заявка за показване на всички подробности за служителите, подредени във възходящ ред на датата им на раждане.
Запитване:
mysql> SELECT *FROM employees ORDER BY DOB;
Тъй като искахме да сортираме записите във възходящ ред на датата на раждане на служителите, приложихме клаузата ORDER BY в колоната „DOB“.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Дата на присъединяване | DOB |
---|---|---|---|---|
4 | Анант Десай | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Саураб Джа | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Кунал Мохит | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Рохит Мор | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Кришна Шарма | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Резултатите, получени от горната заявка, показват, че записите се показват по възходящ ред на DOB.
Пример 2:
Напишете заявка, за да покажете всички подробности за служителите, подредени в низходящ ред на датите им на присъединяване.
Запитване:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Тъй като искахме да сортираме записите в низходящ ред на датата на присъединяване на служителите, ние приложихме клаузата ORDER BY с ключовата дума DESC в колоната „Joining_Date“.
Ще получите следния изход:
java карта
документ за самоличност | Име | Заплата | Дата на присъединяване | DOB |
---|---|---|---|---|
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Кунал Мохит | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Рохит Мор | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Анант Десай | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Саураб Джа | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Кришна Шарма | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Резултатите, получени от горната заявка, показват, че записите се показват в низходящ ред на датите на присъединяване.
Пример 3:
Напишете заявка за показване на всички подробности за служителите, подредени във възходящ ред на тяхната година на раждане.
Запитване:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Тъй като искахме да сортираме записите във възходящ ред на годината на раждане на служителите, приложихме клаузата ORDER BY. Функцията DATE_FORMAT () се прилага към колоната DOB с параметъра „%Y“, за да извлече само годината от „DOB“.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Дата на присъединяване | Година на раждане |
---|---|---|---|---|
4 | Анант Десай | 59 000 | 2018-08-27 | 1978 г |
3 | Саураб Джа | 61000 | 2015-05-01 | 1983 г |
2 | Кунал Мохит | 34 000 | 2021-01-01 | 1990 г |
1 | Рохит Мор | 50 000 | 2020-02-08 | 1991 г |
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 1998 г |
5 | Кришна Шарма | 48000 | 2010-10-23 | 1999 г |
Резултатите, получени от горната заявка, показват, че записите се показват според възходящ ред на годината на раждане на служителя.
Пример 4:
Напишете заявка, за да покажете всички подробности за служителите, подредени в низходящ ред на техния час на раждане.
математика случайна java
Запитване:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Тъй като искахме да сортираме записите в низходящ ред на часа на раждане на служителите, приложихме клаузата ORDER BY с ключовата дума DESC. Функцията DATE_FORMAT () се прилага към колоната DOB с параметъра „%H“, за да извлече само часа на раждане от колоната „DOB“.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Дата на присъединяване | Час_На_Раждане |
---|---|---|---|---|
2 | Кунал Мохит | 34 000 | 2021-01-01 | 19 |
1 | Рохит Мор | 50 000 | 2020-02-08 | 18 |
4 | Анант Десай | 59 000 | 2018-08-27 | петнадесет |
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 13 |
3 | Саураб Джа | 61000 | 2015-05-01 | 12 |
5 | Кришна Шарма | 48000 | 2010-10-23 | 02 |
Резултатите, получени от горната заявка, показват, че записите се показват в низходящ ред на часа на раждане на служителя.
Пример 5:
Напишете заявка, за да покажете всички подробности за служителите, подредени във възходящ ред на тяхната година на присъединяване.
Запитване:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Тъй като искахме да сортираме записите във възходящ ред на годината на присъединяване на служителите, приложихме клаузата ORDER BY. Функцията DATE_FORMAT () се прилага към колоната Joining_Date с параметъра „%Y“, за да извлече само годината от „Joining_Date“.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Година_на_присъединяване | DOB |
---|---|---|---|---|
5 | Кришна Шарма | 48000 | 2010 г | 1999-03-21 02:14:56 |
3 | Саураб Джа | 61000 | 2015 г | 1983-02-20 12:18:45 |
4 | Анант Десай | 59 000 | 2018 г | 1978-06-29 15:45:13 |
1 | Рохит Мор | 50 000 | 2020 г | 1991-01-28 18:06:08 |
2 | Кунал Мохит | 34 000 | 2021 г | 1990-05-15 19:10:00 |
6 | Бхавеш Джайн | 37 000 | 2021 г | 1998-08-02 13:00:01 |
Резултатите, получени от горната заявка, показват, че записите се показват според възходящ ред на годината на присъединяване на служителите.
Пример 6:
Напишете заявка за показване на всички подробности за служителите, подредени в низходящ ред на деня на присъединяване на служителите.
Запитване:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Тъй като искахме да сортираме записите в низходящ ред на деня на присъединяване на служителите, приложихме клаузата ORDER BY с ключовата дума DESC. Функцията DAY () се прилага към колоната „Joining_Date“, за да извлече само деня на присъединяване от Joining_Date.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Ден_на_присъединяване | DOB |
---|---|---|---|---|
4 | Анант Десай | 59 000 | 27 | 1978-06-29 15:45:13 |
5 | Кришна Шарма | 48000 | 23 | 1999-03-21 02:14:56 |
1 | Рохит Мор | 50 000 | 8 | 1991-01-28 18:06:08 |
6 | Бхавеш Джайн | 37 000 | 3 | 1998-08-02 13:00:01 |
2 | Кунал Мохит | 34 000 | 1 | 1990-05-15 19:10:00 |
3 | Саураб Джа | 61000 | 1 | 1983-02-20 12:18:45 |
Резултатите, получени от горната заявка, показват, че записите се показват в низходящ ред на деня на присъединяване на служителите.
Пример 7:
Напишете заявка за показване на всички подробности за служителите, подредени във възходящ ред на рождения ден на служителите.
Запитване:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Тъй като искахме да сортираме записите във възходящ ред на деня на раждане на служителите, приложихме клаузата ORDER BY. Функцията DAY () се прилага към колоната „DOB“, за да извлече само деня на раждане от DOB.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Година_на_присъединяване | Ден на раждане |
---|---|---|---|---|
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 2 |
2 | Кунал Мохит | 34 000 | 2021-01-01 | петнадесет |
3 | Саураб Джа | 61000 | 2015-05-01 | двадесет |
5 | Кришна Шарма | 48000 | 2010-10-23 | двадесет и едно |
1 | Рохит Мор | 50 000 | 2020-02-08 | 28 |
4 | Анант Десай | 59 000 | 2018-08-27 | 29 |
Резултатите, получени от горната заявка, показват, че записите се показват според възходящ ред на деня на раждане на служителя.
Пример 8:
Напишете заявка за показване на всички подробности за служителите, подредени във възходящ ред на месеца на раждане на служителя.
Запитване:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
документ за самоличност | Име | Заплата | Дата на присъединяване | DOB |
---|---|---|---|---|
1 | Рохит Мор | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Саураб Джа | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Кришна Шарма | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Кунал Мохит | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | Анант Десай | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
Резултатите, получени от горната заявка, показват, че записите се показват според възходящ ред на месеца на раждане на служителя.
bfs срещу dfs
Пример 9:
Напишете заявка за показване на всички подробности за служителите, подредени във възходящ ред на месеца на присъединяване на служителя.
Запитване:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Тъй като искахме да сортираме записите във възходящ ред на месеца на присъединяване на служителите, приложихме клаузата ORDER BY. Функцията MONTH () се прилага към колоната „Joining_Date“, за да извлече само месеца на присъединяване от Joining_Date.
Ще получите следния изход:
документ за самоличност | Име | Заплата | Дата на присъединяване | DOB |
---|---|---|---|---|
2 | Кунал Мохит | 34 000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | Рохит Мор | 50 000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Саураб Джа | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | Бхавеш Джайн | 37 000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Анант Десай | 59 000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Кришна Шарма | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Резултатите, получени от горната заявка, показват, че записите се показват според възходящ ред на месеца на присъединяване на служителя.