Sql order by asc: Предложение ORDER BY (Transact-SQL) — SQL Server

Урок 4. Сортировка в SQL (ORDER BY)

В SQL часто кроме фильтрации данных, также часто требуется отсортировать их по одному из столцов.

В первом уроке мы написали SQL-запрос для получения данных о совершенолетних пользователях. Посмотрим на него еще раз:

SELECT last_name, first_name, birthday FROM users WHERE age >= 18

Совершеннолетние пользователи
idlast_namefirst_namebirthday
1ИвановДмитрий1996-12-11
3ШевченкоТимур1998-04-27
4ИвановаСветлана1993-08-06
6ИвановАлексей1993-08-05
7ПроцукАлена1997-02-28

Обратите внимание, что сейчас данные никак не упорядочены. Ни по фамилии, ни по имени, ни по дате рождения. Но давайте добавим после конструции WHERE: ORDER BY

last_name:.

SELECT last_name, first_name, birthday 
FROM users WHERE age >= 18 ORDER BY last_name

После выполнение данного SQL запроса мы получим таблицу отсортированную по столбцу last_name (фамилия). Так как last_name хранит строки, то сортировка происходит в алфавитном порядке:

Сортировка по фамилии
idlast_namefirst_namebirthday
1ИвановДмитрий1996-12-11
6ИвановАлексей1993-08-05
4ИвановаСветлана1993-08-06
7ПроцукАлена1997-02-28
3ШевченкоТимур1998-04-27

Обратите внимание, что данные отсортированы только по фамилии, но не по другим полям. Однако давайте добавим через запятую еще один столбец, например,

first_name:

SELECT last_name, first_name, birthday 
FROM users WHERE age >= 18 ORDER BY last_name, first_name

Теперь таблица отсортирована сразу по двум поля, сперва по фамилии, а уже затем по имени:

Сортировка по фамилии и имени
idlast_namefirst_namebirthday
6ИвановАлексей1993-08-05
1ИвановДмитрий1996-12-11
4ИвановаСветлана1993-08-06
7ПроцукАлена1997-02-28
3ШевченкоТимур1998-04-27

Разумеется, сортировать можно не только по текстовым полям. Например, можно написать ORDER BY birthday:

SELECT last_name, first_name, birthday 
FROM users 
WHERE age >= 18 
ORDER BY birthday

И получить данные упорядоченные по дате рождения в хронологическом порядке:

Сортировка по дате рождения
idlast_namefirst_namebirthday
6ИвановАлексей1993-08-05
4ИвановаСветлана1993-08-06
1ИвановДмитрий1996-12-11
7ПроцукАлена1997-02-28
3ШевченкоТимур1998-04-27

А если в конструкции ORDER BY после имени столца написать DESC, то данные будут отсортированы в обратном порядке — свежие даты выше:

Сортировка по дате рождения в обратном порядке
idlast_namefirst_namebirthday
3ШевченкоТимур1998-04-27
7Процук Алена1997-02-28
1ИвановДмитрий1996-12-11
4ИвановаСветлана1993-08-06
6ИвановАлексей1993-08-05

Более того при сортировке данных по нескольким столцам, мы можем для разных столцов указывать разные направления сортировки. Например ORDER BY last_name, birthday DESC:

SELECT last_name, first_name, birthday 
FROM users 
WHERE age >= 18 
ORDER BY last_name, birthday DESC

Тогда данные будут сперва отсортированы в алфавитном порядке по фамилии, а уже внутри каждой фамилии по дате рождения в обратном порядке:

Сортировка по дате рождения в обратном порядке
idlast_namefirst_namebirthday
6ИвановАлексей1993-08-05
1ИвановДмитрий1996-12-11
4ИвановаСветлана1993-08-06
7ПроцукАлена1997-02-28
3ШевченкоТимур1998-04-27

Следующий урок

Урок 5. Ограничение выборки

В этом уроке вы научитесь ограничивать итоговые результаты с помощью конструкции LIMIT.

Посмотреть

Тарифы

    • 55 видео-уроков

      Более 7 часов видео

    • Дополнительные материалы

      Схемы, методички, исходные коды

    • Возможность скачать видео

      Смотреть уроки можно даже без интернета

    • Доступ к курсу навсегда

      Можете освежить знания через год или два

    • 271 практическое задание

      Практические занятия на тренажере

    • Поддержка преподавателя

      Помощь в решении заданий в течение 24 часов

    • Сертификат о прохождении курса

      Подтверждение ваших навыков

    • Эталонные решения

      Решения преподавателя

    • 55 видео-уроков

      Более 7 часов видео

    • Дополнительные материалы

      Схемы, методички, исходные коды

    • Возможность скачать видео

      Смотреть уроки можно даже без интернета

    • Доступ к курсу навсегда

      Условия бесплатного тарифа могут измениться

    • 271 практическое задание

      Практические занятия на тренажере

    • Поддержка преподавателя

      Помощь в решении заданий в течение 24 часов

    • Сертификат о прохождении курса

      Подтверждение ваших навыков

    • Эталонные решения

      Решения преподавателя

Без воды

Поддержка

Регистрация

Письмо со ссылкой для доступа отправлено.
Проверьте почту.

Письмо не пришло? Посмотрите в спаме.

Регистрируясь, вы соглашаетесь с условиями предоставления услуг (пользовательское соглашение).

SQL ORDER BY ASC

В этом разделе мы описали ORDER BY ASC с подробным примером.

Оператор ORDER BY ASC используется для сортировки данных из таблицы в наборе результатов в порядке возрастания.

ORDER BY ASC используется в операторе SELECT.

Синтаксис —
 SELECT столбец1, столбец2, …, столбецN
ОТ имя_таблицы
[ ГДЕ состояние ]
ORDER BY имя_столбца ASC;
 
  • столбец1, столбец2, …, столбецN — указывает имена столбцов из таблицы.
  • имя_таблицы — указывает имя таблицы.
  • имя_столбца — Указывает столбец, используемый для выполнения операции ORDER BY ASC.

Пример —

Давайте рассмотрим приведенную ниже таблицу (таблицы) в качестве примера таблицы (таблиц) для создания SQL-запроса для получения желаемых результатов.

employee_details —
emp_id emp_name обозначение manager_id date_of_hire зарплата dept_id
001 Сотрудник1 Директор 11.07.2019 45000,00 1000
002 Сотрудник2 Директор 11.07.2019 40000,00 2000
003 Сотрудник3 Менеджер Сотрудник1 11.07.2019 27000,00 1000
004 Сотрудник4 Менеджер Сотрудник2 2019-10-08 25000,00 2000
005 Сотрудник5 Аналитик Сотрудник3 11.07.2019 20000,00 1000
006 Сотрудник6 Аналитик Сотрудник3 2019-10-08 18000. 00 1000
007 Сотрудник7 Клерк Сотрудник3 11.07.2019 15000,00 1000
008 Сотрудник8 Продавец Сотрудник4 09.09.2019 14000.00 2000
009 Сотрудник9 Продавец Сотрудник4 2019-10-08 13000.00 2000

Сценарий — выборка строк в порядке возрастания с использованием столбца.

Требование — Получить emp_name, сведения о назначении всех сотрудников из таблицы сотрудников в порядке возрастания назначения. Запрос был такой —

 ВЫБРАТЬ emp_name, обозначение ИЗ employee_details
 ЗАКАЗАТЬ ПО обозначению ASC;
 

Выполнив вышеуказанный запрос, мы можем получить результаты, как показано ниже —

emp_name обозначение
Сотрудник5 Аналитик
Сотрудник6 Аналитик
Сотрудник7 Клерк
Сотрудник1 Директор
Сотрудник2 Директор
Сотрудник3 Менеджер
Сотрудник4 Менеджер
Сотрудник8 Продавец
Сотрудник9 Продавец

Сценарий — выборка строк в порядке возрастания с использованием нескольких столбцов.

Требование — Получить emp_name, назначение, dept_id сведения обо всех сотрудниках из таблицы сотрудников в порядке возрастания назначения и dept_id. Запрос был следующим —

 ВЫБЕРИТЕ emp_name, назначение, dept_id FROM employee_details
 ORDER BY обозначение, dept_id ASC;
 

Выполнив вышеуказанный запрос, мы можем получить результаты, как показано ниже —

emp_name обозначение dept_id
Сотрудник5 Аналитик 1000
Сотрудник6 Аналитик 1000
Сотрудник7 Клерк 1000
Сотрудник1 Директор 1000
Сотрудник2 Директор 2000
Сотрудник3 Менеджер 1000
Сотрудник4 Менеджер 2000
Сотрудник8 Продавец 2000
Сотрудник9 Продавец 2000

Сценарий — выборка строк в порядке возрастания одного столбца и в порядке убывания другого столбца.

Требование — Получить emp_name, назначение, оклад, dept_id сведения обо всех сотрудниках из таблицы employee_details в порядке возрастания назначения и убывания зарплаты. Запрос был такой —

 ВЫБЕРИТЕ emp_name, должность, оклад, dept_id ИЗ employee_details
ПОРЯДОК ПО обозначению ASC, окладу DESC;
 

Выполнив вышеуказанный запрос, мы можем получить результаты, как показано ниже —

emp_name обозначение зарплата dept_id
Сотрудник5 Аналитик 20000.00 1000
Сотрудник6 Аналитик 18000.00 1000
Сотрудник7 Клерк 15000,00 1000
Сотрудник1 Директор 45000,00 1000
Сотрудник2 Директор 40000,00 2000
Сотрудник3 Менеджер 27000,00 1000
Сотрудник4 Менеджер 25000,00 2000
Сотрудник8 Продавец 14000. 00 2000
Сотрудник9 Продавец 13000.00 2000

Сценарий — Выборка строк в порядке возрастания столбца по относительному положению.

Требование — Получить данные emp_name, зарплаты, manager_id обо всех сотрудниках из таблицы employee_details в порядке возрастания относительного положения столбца зарплаты в наборе результатов. Запрос был следующим:

 ВЫБЕРИТЕ emp_name, зарплату, manager_id ИЗ employee_details
 ЗАКАЗ ПО 2 ASC;
 

Выполнив вышеуказанный запрос, мы можем получить результаты, как показано ниже —

emp_name зарплата manager_id
Сотрудник9 13000.00 Сотрудник4
Сотрудник8 14000.00 Сотрудник4
Сотрудник7 15000,00 Сотрудник3
Сотрудник6 18000. 00 Сотрудник3
Сотрудник5 20000,00 Сотрудник3
Сотрудник4 25000,00 Сотрудник2
Сотрудник3 27000,00 Сотрудник1
Сотрудник2 40000,00
Сотрудник1 45000,00

Предложение ORDER BY в SQL

Обзор

Предложение ORDER BY помогает нам сортировать записи столбца в таблице с помощью ключевых слов ASC и DESC в порядке возрастания и убывания соответственно. Мы можем отсортировать один столбец , несколько столбцов , сортировка без использования ключевого слова ASC/DESC , сортировка с использованием обоих ключевых слов ASC/DESC и в соответствии с относительной позицией столбца .

Scope

  • В этой статье объясняется, что такое предложение ORDER BY в SQL?
  • Он показывает нам, как использовать его несколькими способами для сортировки записей на основе имен столбцов и позиций в зависимости от используемого ключевого слова.
  • Это также объясняет работу ключевых слов ASC и DESC.

Введение в предложение ORDER BY в SQL

Предложение ORDER BY в SQL сортирует записи столбца таблицы в базе данных SQL. Это помогает нам отсортировать столбец в как по возрастанию, так и по убыванию . Ключевое слово ASC помогает нам сортировать по возрастанию, а DESC — по убыванию. Если ключевое слово, по которому мы должны сортировать записи в столбце, не указано, оно примет значение по умолчанию . `По умолчанию записи сортируются в порядке возрастания.

Предложение ORDER BY может использоваться только для операторов SELECT.

Синтаксис

Мы используем ключевые слова ASC и DESC для сортировки столбца в порядке возрастания и убывания соответственно.

СИНТАКСИС:

 
 ВЫБРАТЬ список столбцов ИЗ имя_таблицы ГДЕ условия ORDER BY имя_столбца ASC|DESC
 

Несколько столбцов сортируются одновременно путем разделения их имен оператором запятая (,). Имена двух столбцов должны быть уникальными. Записи сначала сортируются по первому столбцу, а затем отсортированный список по второму столбцу, если две строки ранее имели какое-то значение.

СИНТАКСИС:

 
 ВЫБРАТЬ список-столбцов ИЗ имя_таблицы ГДЕ условия ORDER BY столбец1 ASC|DESC , столбец2 ASC|DESC
 

Ключевое слово ASC используется для сортировки записей в порядке возрастания. СИНТАКСИС:

 
 ВЫБЕРИТЕ список столбцов ИЗ имя_таблицы ГДЕ условия ORDER BY имя_столбца ASC
 

Ключевое слово DESC используется для сортировки записей в порядке убывания. СИНТАКСИС:

 
 ВЫБЕРИТЕ список столбцов ИЗ имя_таблицы ГДЕ условия ORDER BY имя_столбца DESC
 

Если ключевое слово ASC или DESC не указано, предложение ORDER BY сортирует записи в порядке возрастания.

 
 ВЫБЕРИТЕ список столбцов ИЗ имя_таблицы ГДЕ условия ORDER BY имя_столбца
 

Примеры

Рассмотрим таблицу Сотрудники со следующими записями:

ID ИМЯ ВОЗРАСТ АДРЕС ЗАРПЛАТА
10056 Amish 32 Ahmedabad 2000. 00
2 Nisha 25 Delhi 1500.00
3 Suman 23 Kota 2000.00
4 Yashwant 25 Mumbai 6500.00
5 Durgesh 27 Bhopal 8500.00
6 Esha 22 MP 4500.00
7 Khansha 24 Indore 10000.00
8 Amisha 28 Kolkata 1000.00
9 Сарфараз 24 Патна 6000.00

Сотрудники SELECT FSCORNAME *

Этот SQL-запрос отсортирует все записи по именам в порядке возрастания.

ID NAME AGE ADDRESS SALARY
1 Amish 32 Ahmedabad 2000. 00
8 Amisha 28 Калькутта 1000.00
5 Дургеш 27 Bhopal 8500.00
6 Esha 22 MP 4500.00
7 Khansha 24 Indore 10000.00
2 Nisha 25 Delhi 1500.00
9 Sarfaraz 24 Patna 6000.00
3 Suman 23 Kota 2000.00
4 Yashwant 25 Mumbai 6500.00

SELECT * FROM Employees ORDER BY NAME ASC, ID DESC;

Этот SQL-запрос собирает все данные о сотрудниках и сортирует их сначала по ИМЕНИ в порядке возрастания, а затем по их идентификатору в порядке убывания.

ID ИМЯ AGE ADDRESS SALARY
1 Amish 32 Ahmedabad 2000.00
8 Amisha 28 Kolkata 1000.00
5 Durgesh 27 Bhopal 8500.00
6 Esha 22 MP 4500.00
7 Khansha 24 Indore 10000.00
2 Nisha 25 Delhi 1500.00
9 Sarfaraz 24 Patna 6000.00
3 Suman 23 Kota 2000.00
4 Yashwant 25 Mumbai 6500. 00
Примечание. Вы можете получить тот же результат, пропустив ключевое слово ASC в SQL-запросе, поскольку оно является значением по умолчанию в предложении ORDER By.

ВЫБЕРИТЕ * ИЗ Сотрудники ЗАКАЗАТЬ ПО ИМЯ, ID DESC;

0056 1500. 00
ID NAME AGE ADDRESS SALARY
1 Amish 32 Ahmedabad 2000.00
8 Amisha 28 Kolkata 1000.00
5 Durgesh 27 Bhopal 8500.00
6 Esha 22 MP 4500.00
7 Khansha 24 Индор 10000,00
2 257 25677777777777777777777777777777777777777777777777777777777777777777777777
9 Sarfaraz 24 Patna 6000.00
3 Suman 23 Kota 2000.00
4 Yashwant 25 Mumbai 6500.00

Если ключевые слова не указаны, записи сортируются в порядке возрастания, принимая значение по умолчанию для предложения ORDER BY. Этот метод не предназначен для сортировки по убыванию.

ВЫБЕРИТЕ * ОТ сотрудников ЗАКАЗАТЬ ПО ИМЕНИ;

ID NAME AGE ADDRESS SALARY
1 Amish 32 Ahmedabad 2000.00
8 Amisha 28 Калькутта 1000.00
5 Дургеш 27 Бхопал 8500. 00
6 Esha 22 MP 4500.00
7 Khansha 24 Indore 10000.00
2 Nisha 25 Delhi 1500.00
9 Sarfaraz 24 Patna 6000.00
3 Suman 23 KOTA 2000,00
4 Yashwant 25 Mumbai 6500,00
6500,00
. сортировка в одном операторе SELECT.

ВЫБЕРИТЕ * ИЗ Сотрудники ЗАКАЗАТЬ ПО ИМЕНИ ASC, ID DESC;

777777 7.0057
ID ИМЯ ВОЗРАСТ АДРЕС SALARY
1 Amish 32 Ahmedabad 2000. 00
8 Amisha 28 Kolkata 1000.00
5 Durgesh 27 Bhopal 8500,00
6 ESHA 22 MP 4500,00
79
796699669
7
24 Indore 10000.00
2 Nisha 25 Delhi 1500.00
9 Sarfaraz 24 Patna 6000.00
3 Suman 23 Kota 2000.00
4 Yashwant 25 Mumbai 6500.00

В этом примере возвращаются все записи, отсортированные по NAME в порядке возрастания, а затем вторичная сортировка по идентификатору в порядке убывания. Это происходит только тогда, когда есть записи с одинаковыми именами. Он сортируется по идентификатору в порядке убывания.

ВЫБЕРИТЕ * ИЗ Сотрудники ЗАКАЗАТЬ ПО ИМЯ DESC;

Этот запрос SQL сортирует записи в таблице в порядке убывания их имен.

.0057
ID ИМЯ ВОЗРАСТ ADDRESS SALARY
4 Yashwant 25 Mumbai 6500.00
3 Suman 23 Kota 2000.00
9 Sarfaraz 24 Patna 6000.00
2 Nisha 25 Delhi 1500.00
7 Khansha 24 Indore 10000.00
6 Esha 22 MP 4500. 00
5 Durgesh 27 Bhopal 8500.00
8 Amisha 28 Kolkata 1000,00
1 AMISH 32 AHMEDABAD 2000.00.00.009 AHMEDABAD 2000.00.00.009.009 AHMEDABAD 2000.00.009.009 AHMEDABAD 2000.00.009009 AHMEDABAD AHMEDABAD

Номер столбца — это целое число, определяющее относительное положение столбца в таблице. Оно должно быть на 90 599 больше, чем 0 , но не число столбцов, чтобы столбец присутствовал в таблице.

Это нарушает читаемость кода и затрудняет его прогнозирование. Последовательность появления столбцов зависит от физического порядка таблицы. Физический порядок часто меняется при добавлении, удалении или обновлении таблицы. Таким образом, запрос с использованием относительного положения дает другой результат при изменении порядка столбцов в таблице. Обращение к предложению ORDER BY по именам столбцов не влияет на результаты, что делает его более подходящим.

ВЫБЕРИТЕ * ОТ сотрудников ЗАКАЗАТЬ ПО 3 ASC;

В этом примере мы отсортировали таблицу по столбцу номер 3, т. е. в порядке возрастания возраста.

ID NAME AGE ADDRESS SALARY
6 Esha 22 MP 4500.00
3 Suman 23 Кота 2000,00
7 Khansha 24 Indore 10000.00
9 Sarfaraz 24 Patna 6000.00
2 Nisha 25 Delhi 1500.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

© 2019 Штирлиц Сеть печатных салонов в Перми

Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.