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

SQL ORDER BY Статья

Предложение ORDER BY можно использовать в запросе SELECT для сортировки результата по возрастанию или убыванию одного или нескольких столбцов.

Синтаксис:
 ВЫБЕРИТЕ столбец1, столбец2,... столбецN
ОТ имя_таблицы
[КУДА]
[ГРУППА ПО]
[ИМЕЮЩИЙ]
[ORDER BY столбцы [ASC|DESC]]
 
  • Предложение ORDER BY используется для получения отсортированных записей по одному или нескольким столбцам в порядке возрастания или убывания.
  • Предложение ORDER BY должно стоять после предложений WHERE, GROUP BY и HAVING, если они присутствуют в запросе.
  • Используйте ASC или DESC, чтобы указать порядок сортировки после имени столбца. Используйте ASC для сортировки записей по возрастанию или используйте DESC для убывания. По умолчанию предложение ORDER BY сортирует записи в порядке возрастания, если порядок не указан.

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

Эмпирид Имя Фамилия Электронная почта Телефон № Зарплата ИД отдела
1 ‘Джон’ ‘Король’ ‘[электронная почта защищена]’ ‘650.127.1834’ 33000 1
2 ‘Джеймс’ ‘Бонд’ 1
3 ‘Нина’ ‘Кочхар’ ‘[электронная почта защищена]’ ‘123. 456.4568′ 17000 2
4 ‘Лекс’ ‘Де Хаан’ ‘[электронная почта защищена]’ ‘123.000.4569’ 15000 1
5 ‘Амит’ ‘Патель’ 18000
1
6 ‘Абдул’ ‘Калам’ ‘[электронная почта защищена]’ ‘123.123.0000’ 25000 2

Следующий запрос извлечет все записи из таблицы Employee и отсортирует результат в порядке возрастания Имя значений.

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

Эмпирид Имя Фамилия Электронная почта
Телефон №
Зарплата ИД отдела
6 ‘Абдул’ ‘Калам’ ‘[электронная почта защищена]’ ‘123.123.0000’ 25000 2
5 ‘Амит’ ‘Патель’ 18000 1
2 ‘Джеймс’ ‘Бонд’ 1
1 ‘Джон’ ‘Король’ ‘[электронная почта защищена]’ ‘650. 127.1834′ 33000 1
4 ‘Лекс’ ‘Де Хаан’ ‘[электронная почта защищена]’ ‘123.456.4569’ 15000 1
3 ‘Нина’ ‘Кочхар’ ‘[электронная почта защищена]’ ‘123.456.4568’ 17000 2

Следующий запрос вернет строки в порядке убывания Имя значение.

 ВЫБЕРИТЕ EmpId, Имя, Фамилию ОТ Сотрудника
ЗАКАЗАТЬ ПО ИМЕНИ DESC;
 

Эмпирид Имя Фамилия
3 ‘Нина’ ‘Кочхар’
4 ‘Лекс’ ‘Де Хаан’
1 ‘Джон’ ‘Король’
2 ‘Джеймс’ ‘Бонд’
5 ‘Амит’ ‘Патель’
6 ‘Абдул’ ‘Калам’

Сортировка по нескольким столбцам

Предложение ORDER BY может включать несколько столбцов в разном порядке сортировки (по возрастанию или по убыванию). Когда вы включаете несколько столбцов с предложением ORDER BY, оно сортирует записи на основе первого столбца, и если любые две или более записей имеют одинаковое значение в первом столбце ORDER BY, они сортируются по второму столбцу ORDER BY. .

Чтобы понять это, сначала отсортируйте результат по столбцу DeptId , как показано ниже.

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

Приведенный выше запрос выдаст следующий результат.

Эмпирид Имя Фамилия Телефон № Дата найма Зарплата ИД отдела
1 ‘Джон’ ‘Король’ ‘[электронная почта защищена]’ ‘650. 127.1834′ 33000 1
2 ‘Джеймс’ ‘Бонд’
1
4 ‘Лекс’ ‘Де Хаан’ ‘[электронная почта защищена]’ ‘123.000.4569’ 15000 1
5 ‘Амит’ ‘Патель’ 18000 1
3 ‘Нина’ ‘Кочхар’ ‘[электронная почта защищена]’ ‘123. 456.4568′ 17000
2
6 ‘Абдул’ ‘Калам’ ‘[электронная почта защищена]’ ‘123.123.0000’ 25000 2

Теперь включите столбец FirstName в предложение ORDER BY.

 ВЫБЕРИТЕ * ОТ Сотрудника
ЗАКАЗАТЬ ПО DeptId, Имя;
 

Приведенный выше запрос сначала отсортирует результат по DeptId , а затем строки с одинаковым DeptId будут отсортированы по FirstName . Помните, что мы не включили ASC или DESC, поэтому по умолчанию результат будет отсортирован в порядке возрастания, как показано ниже.

Эмпирид Имя Фамилия
Телефон №
Дата найма Зарплата ИД отдела
5 ‘Амит’ ‘Патель’ 18000 1
2 ‘Джеймс’ ‘Бонд’ 1
1 ‘Джон’ ‘Король’ ‘[электронная почта защищена]’ ‘650. 127.1834′ 33000 1
4 ‘Лекс’ ‘Де Хаан’ ‘[электронная почта защищена]’ ‘123.000.4569’ 15000 1
6 ‘Абдул’ ‘Калам’ ‘[электронная почта защищена]’ ‘123.123.0000’ 25000 2
3 ‘Нина’ ‘Кочхар’ ‘[электронная почта защищена]’ ‘123.456.4568’ 17000 2

Сортировка группы записей

Следующий запрос сортирует группу записей.

 SELECT dept.Name как «Отдел», count(emp.empid) как «Число сотрудников»
ОТ Сотрудник ип, отдел отдела
ГДЕ emp.deptid = dept.DeptId
ГРУППА по названию отдела
ЗАКАЗАТЬ ПО названию отдела DESC
 

Отдел Количество сотрудников
ЧАС 2
Финансы 4

Пункт ORDER BY — сортировка данных в SQL

SQL > Команды SQL > Заказ по номеру

Команда ORDER BY в SQL сортирует результирующий набор либо по возрастанию, либо по убыванию. ORDER BY обычно появляется последним в операторе SQL, потому что он выполняется после получения результирующего набора.

Синтаксис

Синтаксис оператора ORDER BY следующий:

ВЫБЕРИТЕ «имя_столбца»
ИЗ «имя_таблицы»
[ГДЕ «состояние»]
ORDER BY «column_name» [ASC, DESC];

[ ] означает, что оператор WHERE является необязательным. Однако если существует предложение WHERE , оно предшествует предложению ORDER BY . ASC означает, что результаты будут показаны в порядке возрастания, а DESC означает, что результаты будут показаны в порядке убывания. Если ни один из них не указан, по умолчанию используется ASC .

Возможен заказ более чем по одной колонке. Для случая, когда мы сортируем по двум столбцам, ORDER BY Пункт выше становится

ORDER BY «имя_столбца1» [ASC, DESC], «имя_столбца2» [ASC, DESC]

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

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

Примеры

Мы используем следующую таблицу для примеров 1-3.

Table Store_Information

 Los Angeles   1500   Jan-05-1999 
 San Diego   250   Jan-07-1999 
 San Francisco   300 08 января 1999
Бостон 700 08 января 1999 
Пример 1: ORDER BY для одного столбца с именем столбца

Чтобы перечислить содержимое таблицы Store_Information по продажам в порядке убывания, введите

ВЫБЕРИТЕ Store_Name, Продажи, Txn_Date
ОТ Store_Information
ЗАКАЗАТЬ ПО ПРОДАЖЕ DESC;

Результат:

Store_Name   Продажи   Txn_Date
Los Angeles  1500  Jan-05-1999
Boston  700  Jan-08-1999
San Francisco  300  Jan- 08-1999
Сан-Диего 250 07 января 1999

Пример 2: ORDER BY для одного столбца с использованием позиции столбца

В дополнение к имени столбца мы также можем использовать положение столбца (на основе SQL-запроса), чтобы указать, к какому столбцу мы хотим применить ORDER BY пункт. Первый столбец равен 1, второй столбец равен 2 и так далее. В приведенном выше примере мы добьемся тех же результатов с помощью следующей команды:

.

ВЫБЕРИТЕ Store_Name, Sales, Txn_Date
ОТ Store_Information
ЗАКАЗАТЬ ПО 2 DESC;

Пример 3: ORDER BY для одного столбца с использованием столбца, которого нет в операторе SELECT

Столбцы, которые мы используем для сортировки результатов, не обязательно должны находиться в Пункт SELECT . Например, следующий SQL,

ВЫБЕРИТЕ Store_Name
ОТ Store_Information
ЗАКАЗАТЬ ПО ПРОДАЖЕ DESC;

отлично работает и даст следующий результат:

94444449449999999444444444499999999999999999999999999944 9f0003
Пример 4: ORDER BY выражение

Также можно отсортировать результат по выражению. Например, в следующей таблице

Table Product_Sales

Store_Name
Лос -Анджелес
Бостон
Сан -Франциско
SAN DiGA
SAN DiGA
SAN DiGA
1 10 9
2 15 4
3 25 3

we can use the Оператор SQL ниже, чтобы упорядочить результаты по доходу (определяется как цена * единицы):

ВЫБЕРИТЕ Product_ID, Цена*Доход от единиц
ОТ Продукт_Продажи
ЗАКАЗАТЬ ПО Цена*Единицы DESC;

Результат:

Product_ID Доход
1
3 70044
3 70044
.

Упражнения

Для этих упражнений предположим, что у нас есть таблица с именем 9.0618 User_Sales со следующими данными:

Table User_Sales

 Sophie   Lee   F   Apr-05-2015   500 
 Richard   Brown   M   Apr-05-2015  200
Джамал Санто М 09 апреля 2015 350
 Casey   Healy   M   Apr-09-2015   80 
 Jill   Wilkes   F   Apr-15-2015   210 

1. Which of the следующий оператор SQL действителен? (может быть несколько ответов)
а) SELECT * FROM User_Sales ORDER BY Sales;
б) SELECT * FROM User_Sales ORDER BY Last_Name DESC;
c) SELECT * FROM User_Sales ORDER BY First_Name WHERE Sales > 100;
г) ВЫБЕРИТЕ * ИЗ ПОРЯДКА ПРОДАЖ Пользователя ПО Фамилии, Имени;

2.

Оставить комментарий

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

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

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

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