Упорядочение по ASC / DESC — с 5 примерами
Введение: Упорядочивание по ASC / DESC в SqlВ операторе SELECT порядок строк в результате не гарантируется. Это означает, что SQL Server возвращает набор результатов с неопределенным порядком строк или, можно сказать, сортировкой строк. Чтобы отсортировать данные в определенном порядке, вы можете использовать ORDER BY ASC/DESC в SQL.
Зачем нужно использовать ORDER BY в SQL?
Когда вы выполняете SQL-запрос с определенным результатом, иногда вам нужно просмотреть данные в отсортированном порядке, например рейтинг студентов, отсортировать стоимость гостиничного номера по самой высокой или самой низкой стоимости и т. д. Затем вы можете использовать ключевое слово Order by ASC / Desc для сортировки данных в определенном порядке.
Что такое заказ от ASC?
ASC = По возрастанию , что означает сортировку результата/данных с определенным столбцом от наименьшего значения к наибольшему значению (например, 1, 2, 3, 4, 5, 6, 7, 8 и т.
Что такое заказ по DESC?
DESC = По убыванию значение, сортировать результат/данные с определенным столбцом от наибольшего значения к наименьшему (например, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10). , 9 …..и так далее)
Синтаксис:
ВЫБЕРИТЕ select_list ИЗ имя_таблицы ORDER BY ASC|DESC
используйте ASC или DESC, чтобы указать, должны ли значения в указанном столбце сортироваться по возрастанию или по убыванию
ASC сортирует результат от наименьшего значения к наибольшему значению сортирует набор результатов от наибольшего значения к наименьшему
Примечание. SQL Server использует ASC в качестве порядка сортировки по умолчанию
Пример #1: Сортировать по ASC, сортировать один столбец в порядке возрастанияПримечание. Порядок ASC по умолчанию
Если вы не используете какой-либо указанный порядок, будет отображаться порядок по умолчанию, то есть в порядке возрастания.
этот порядок по умолчанию применим для любого общего запроса., как показано ниже, вывод покажет результат для имени клиента в порядке возрастания
SELECT Имя Клиента ИЗ [dbo].[Customers_Tbl] ЗАКАЗ BY Customer_Name
Результат :
Пример #2: ORDER BY DESC, сортировка столбца по убываниюпорядок.
ВЫБЕРИТЕ Имя Клиента ИЗ [dbo].[Customers_Tbl] ЗАКАЗ ПО Customer_Name DESC
Результат:
Пример #3: Упорядочить / Сортировать несколько столбцов с разным порядкомСуществует способ, при котором вы можете использовать оба порядка ASC | DESC, если вы используете для сортировки записей на основе двух столбцов, иногда нам нужно отображать данные в порядке первого столбца, а затем по второму столбцу.
вы можете сделать это, используя приведенный ниже пример. В этом SQL-запросе выполняется Customer_Name и Product_Category для выполнения сортировки DESC и ASC соответственно
ВЫБОР Customer_Name, Product_Category ИЗ [dbo].[Customers_Tbl] ЗАКАЗАТЬ Customer_Name DESC , Product_Category ASC
Результат :
Пример #4: Сортировка столбца на основе функциивы можете применить опцию ASC/DESC в любой функции в, например Len(), Left query Right() и т. д.…
Как показано ниже, пример пытается отсортировать столбец «Customer_Name» на основе имени с помощью функции подстроки 9.0007
ВЫБОР Имя Клиента, Категория продукта ИЗ [dbo].[Customers_Tbl] ЗАКАЗАТЬ SUBSTRING (Customer_Name , 1, CHARINDEX(' ', Customer_Name ) - 1) ASCПример 5. Сортировка столбца с использованием предложения WHERE
пункт как условие для Product_Category. Результат покажет отсортированный столбец для Customer_Name для всех Product_Category равно «Мебель».
ВЫБЕРИТЕ Имя Клиента, Категория продукта ОТ [dbo].[Customers_Tbl] ГДЕ Product_Category = 'Мебель' ЗАКАЗ ПО Customer_Name ASC
sql — сортировка MySQL DESC и ASC
спросил
Изменено 5 лет, 3 месяца назад
Просмотрено 1к раз
У меня есть таблица с полями:
id | group_id 1 | ноль 2 | ноль 3 | ноль 4 | 4 5 | 4 6 | 4 7 | 7 8 | 7 9 | ноль
, и я хотел бы отсортировать его так:
id | group_id 9 | ноль 7 | 7 8 | 7 4 | 4 5 | 4 6 | 4 3 | ноль 2 | ноль 1 | ноль
Таким образом, это будет DESC по идентификатору в целом, но ASC по идентификатору, когда они совместно используют group_id
Спасибо
- mysql
- sql
- sorting
3
Попробуйте
Выберите id, group_id, объединение(group_id, id) из таблицы в порядке 3 desc, 1
Я заставил это работать:
SELECT id, group_id, rank ОТ ( ВЫБЕРИТЕ идентификатор, group_id, @rank:=IF(group_id=@group_id,@rank,@rank+1) AS ранг, @group_id:=group_id ИЗ MyTable ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ (ВЫБЕРИТЕ @rank:=0) КАК _init ЗАКАЗАТЬ ПО ИДЕНТИФИКАТОРУ DESC ) КАК т ПОРЯДОК ПО рангу ASC, id ASC;
Вывод:
+----+----------+------+ | идентификатор | идентификатор_группы | ранг | +----+----------+------+ | 9 | НУЛЕВОЙ | 1 | | 7 | 7 | 2 | | 8 | 7 | 2 | | 4 | 4 | 3 | | 5 | 4 | 3 | | 6 | 4 | 3 | | 3 | НУЛЕВОЙ | 4 | | 2 | НУЛЕВОЙ | 5 | | 1 | НУЛЕВОЙ | 6 | +----+----------+------+
Вы можете опустить столбец rank
из списка выбора внешнего запроса, я оставил его там только для того, чтобы проиллюстрировать, как я ранжировал группы.