Desc sql: DESC — Учебник SQL — Schoolsw3.com

Урок 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 часов

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

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

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

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

Без воды

Поддержка

Регистрация

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

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

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

DESCRIBE TABLE | ClickHouse Docs

Возвращает описание столбцов таблицы.

Синтаксис

DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format]

Запрос DESCRIBE

для каждого столбца таблицы возвращает строку со следующими значениями типа String:

  • name — имя столбца;
  • type — тип столбца;
  • default_type — вид выражения для значения по умолчанию: DEFAULT, MATERIALIZED или ALIAS. Если значение по умолчанию не задано, то возвращается пустая строка;
  • default_expression — значение, заданное в секции DEFAULT;
  • comment — комментарий;
  • codec_expression — кодек, который применяется к столбцу;
  • ttl_expression — выражение TTL;
  • is_subcolumn — флаг, который равен 1 для внутренних подстолбцов. Он появляется в результате, только если описание подстолбцов разрешено настройкой describe_include_subcolumns.

Каждый столбец Nested структур описывается отдельно. Перед его именем ставится имя родительского столбца с точкой. Чтобы отобразить внутренние подстолбцы других типов данных, нужно включить настройку describe_include_subcolumns.

Пример

Запрос:

CREATE TABLE describe_example (
id UInt64, text String DEFAULT 'unknown' CODEC(ZSTD),
user Tuple (name String, age UInt8)
) ENGINE = MergeTree() ORDER BY id;

DESCRIBE TABLE describe_example;
DESCRIBE TABLE describe_example SETTINGS describe_include_subcolumns=1;

Результат:

┌─name─┬─type──────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ id │ UInt64 │ │ │ │ │ │
│ text │ String │ DEFAULT │ 'unknown' │ │ ZSTD(1) │ │
│ user │ Tuple(name String, age UInt8) │ │ │ │ │ │
└──────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

Второй запрос дополнительно выводит информацию о подстолбцах:

┌─name──────┬─type──────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┬─is_subcolumn─┐
│ id │ UInt64 │ │ │ │ │ │ 0 │
│ text │ String │ DEFAULT │ 'unknown' │ │ ZSTD(1) │ │ 0 │
│ user │ Tuple(name String, age UInt8) │ │ │ │ │ │ 0 │
│ user. name │ String │ │ │ │ │ │ 1 │
│ user.age │ UInt8 │ │ │ │ │ │ 1 │
└───────────┴───────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┴──────────────┘

См. также

  • настройка describe_include_subcolumns.

Упорядочение по 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 — ORDER BY

Последнее изменение: 09 августа 2021 г.

По умолчанию результаты возвращаются в том порядке, в котором они хранятся в базе данных. Но иногда вы захотите отсортировать их по-другому. Вы можете сделать это с помощью команды «ORDER BY» в конце ваших запросов, как показано в расширенной версии нашего шаблона SQL здесь

.
 SELECT [материал, который вы хотите выбрать] FROM [таблица, в которой он находится] ORDER BY [столбец, по которому вы хотите упорядочить];
 

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

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

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

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